WPF绑定问题 - 不起作用?

时间:2010-01-29 13:39:44

标签: wpf binding

我想将代码隐藏.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只是不想显示那该死的“高五”和“五”。我错过了什么?

3 个答案:

答案 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。