WPF:将Label绑定到类属性

我正在尝试将标签的内容绑定到类实例的字符串属性而没有太大成功。

XAML:

   

C#:

 namespace WPFBindingTest { public partial class Window1 : Window { public Foo MyFoo; public Window1() { InitializeComponent(); MyFoo = new Foo(); } private void button1_Click(object sender, RoutedEventArgs e) { MyFoo.W1 = "Hello"; MyFoo.W2 = "Dave"; } } public class Foo { public string W1 { get; set; } public string W2 { get; set; } } } 

即,当我单击按钮时,我将MyFoo的属性设置为“Hello”和“Dave”,并希望在UI上的标签中反映出来。 我已将内容设置为绑定但有些不对劲。 我在这做错了什么?

您可以将MyFoo作为依赖项属性并将DataContext设置为Window1实例:

  

有关详细信息,请参阅此文章 。

使MyFoo成为依赖属性不是强制性的。 如果分配DataContext 之前设置属性值它可能只与属性一起使用。 (但绝不使用字段。)但是,如果您希望标签获取W1W2的更改值(或者您不知道/关心在分配DataContect之前或之后是否设置了值),则需要Foo可以是DependencyObject ,也可以是实现接口INotifyPropertyChanged

或者给你的Window命名:如NameOfWindow并使用ElementName绑定:

 Content="{Binding ElementName=NameOfWindow, Path=MyFoo.W1}" 

完整示例XAML: