2014-01-16 44 views
0

我有一个类MainWindow.xaml.cs如何按钮的内容绑定到静态只读领域

namespace HomeSecurity { 
    /// <summary> 
    /// Interaction logic for MainWindow.xaml 
    /// </summary> 
public partial class MainWindow : Window, INotifyPropertyChanged { 
     public static readonly string START = "start", RESET = "RESET"; 
    ..... 
} 

有在MainWindow.xaml一个按钮:

<Button x:Name="AcceptCamerasButton" Content="{x:Static local:MainWindow.START}" Grid.Row="1" Click="AcceptCamerasButton_Click"></Button> 

如何给该按钮的内容设置为MainWindow.Start?当前版本不起作用。

编辑: 我宣布:

xmlns:local="clr-namespace:HomeSecurity" 

,但仍当我使用:

<Button x:Name="AcceptCamerasButton" Content="{x:Static local:MainWindow.START}" Grid.Row="1" Click="AcceptCamerasButton_Click"></Button> 

我得到:

Error 1 The member "START" is not recognized or is not accessible. 

回答

1

您不能绑定到多个领域。绑定仅适用于属性。因此,您可以将START的定义更改为属性,或者创建一个返回START的值并绑定到该属性的属性包装。

public static string START 
{ 
    get { return "start"} 
} 

public static string RESET 
{ 
    get { return "RESET"; } 
} 

或者,如果你喜欢保持只读支持字段:

private static readonly string startField = "start"; 

public static string START 
{ 
    get { return startField} 
} 

另外,我假设你已经这样做了,但我包括这个反正,确保将名称空间声明包含在名称空间local的XAML文件中,以指向本地程序集和适当的名称空间。

xmlns:local="clr-namespace:YourProjectAssemblyName..." 
+0

如何定义只读静态属性。你可以声明和初始化START属性吗? – Yoda

+1

@Yoda是的,当然。我刚刚更新了相关详细信息的答案 –

+0

请你能看到我编辑过的原始文章吗? – Yoda