如何将按钮内容绑定到静态只读字段

时间:2014-01-16 03:01:09

标签: c# wpf xaml bind

我有一个班级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 个答案:

答案 0 :(得分: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}
}

另外,我假设您已经完成了此操作,但无论如何我都包括此内容,请确保在XAML文件中包含命名空间声明,以便local命名空间指向本地程序集和适当的命名空间。

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