没有XAML的双向数据绑定

时间:2014-12-02 18:22:45

标签: c# .net 2-way-object-databinding

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

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

更新

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

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

1 个答案:

答案 0 :(得分:1)

在C#WPF中,实现INotifyPropertyChanged时会得到PropertyChanged。

所以,如果你写

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

您向Observer(XAML)提供属性PersonName已更改的信号,它将更新所有内容,例如与该财产相关的UIElements。

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

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

使用if(handler != null),您说如果有任何观察者,您只发送信号。

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