1

我有一个类,当它的一个属性发生变化时,我想用它来更新一个文本框。我还希望能够在文本框更改时更改 classes 属性。换句话说,我希望能够进行双向数据绑定。我在网上看过,所有的例子都需要一个 XAML 文件。由于我不熟悉 XAML,如果可能的话,我想远离它。

是否可以在不使用 XAML 的情况下对类进行双向数据绑定?

更新:

我发现这个http://msdn.microsoft.com/en-us/library/ms743695%28v=vs.110%29.aspx,它似乎工作。但是,我并不完全理解它在做什么。

更具体地说,我不明白 PropertyChanged 和 OnPropertyChanged 是如何相互关联的。

4

1 回答 1

2

在 C# WPF 中,当您实现 INotifyPropertyChanged 时,您会获得 PropertyChanged。

所以,如果你写

PropertyChanged(this,  new PropertyChangedEventArgs("PersonName"));

您向观察者 (XAML) 提供属性PersonName更改的信号,它将更新所有链接到该属性的 UIElements。

 protected void OnPropertyChanged(string name)
  {
      PropertyChangedEventHandler handler = PropertyChanged;
      if (handler != null)
      {
          handler(this, new PropertyChangedEventArgs(name));
      }
  }

您将属性名称(例如 PersonName)重载为字符串,以表明哪个属性已更改。

if(handler != null)你说只有在有任何观察者的情况下才会发送信号。

如果是这样,在下一行中你真的给出了信号。

于 2014-12-02T18:55:53.667 回答