我有一个类,当其中一个属性发生更改时,我想用它来更新文本框。我还希望能够在文本框更改时更改classes属性。换句话说,我希望能够进行双向数据绑定。我已经在线查看了,所有示例都需要一个XAML文件。由于我不熟悉XAML,如果可能的话,我想远离它。
是否可以在不使用XAML的情况下对类进行双向数据绑定?
更新
我发现了这个http://msdn.microsoft.com/en-us/library/ms743695%28v=vs.110%29.aspx,它似乎有效。但是,我并不完全理解它在做什么。
更具体地说,我不明白PropertyChanged和OnPropertyChanged如何相互关联。
答案 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)
,您说如果有任何观察者,您只发送信号。
如果是这样,在下一行你真的给出了信号。