我想将代码隐藏.xaml.cs中的一些属性绑定到某些xaml代码,就像这样:
<TextBlock [someProperties] ... Text="{Binding ElementName=awesome, Path=value}" />
<TextBlock [someProperties] ... Text="{Binding Path=legendary}" />
在关联的.xaml.cs文件中,我有属性:
public String legendary = "High five";
public CoolObject awesome = new CoolObject(); //has a public property "String value = '5';"
但是我的TextBlocks只是不想显示那该死的“高五”和“五”。我错过了什么?
答案 0 :(得分:0)
问题是“传奇”和“太棒了”被声明为字段而不是属性。 WPF绑定不适用于字段。
答案 1 :(得分:0)
您需要使用属性包装字段。绑定不支持字段。
所以:
public String _legendary = "High five";
public String legendary {
get { return _legendary; }
set { _legendary = value; }
}
此外,如果您可能想要实现INotifyPropertyChanged,以确保在更改属性值时更新绑定到您的属性的任何内容。
答案 2 :(得分:0)
并且<TextBlock [someProperties] ... Text="{Binding ElementName=awesome, Path=value}" />
无效。当您想要绑定到可视树属性中的某些元素时,使用ElementName。
你需要
<TextBlock [someProperties] ... Text="{Binding Path=awesome.value}" />
此外,您需要将TextBlock的DataContext属性设置为包含您需要绑定的属性的bject。