)
请看下面的代码:
public class MyClass : INotifyPropertyChanged
{
private string _myName;
public string MyName
{
get { return _myName; }
set
{
if (_myName != value)
{
_myName = value;
OnPropertyChanged("MyName");
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
此类的对象用作 WPF 表单上 textBox 控件的 DataContext。
想法很简单:对这个对象的 MyName 属性所做的更改应该自动显示在 textBox 中。它有效,但我不明白为什么。
请按照我的思路,指出我哪里错了……
我们为 MyName 设置了一个新值。程序转到“setter”并调用“OnPropertyChanged”。它转到“OnPropertyChanged”并检查“PropertyChanged”是否为空。
事实并非如此。而且我不知道为什么,因为我没有向这个事件添加任何事件处理程序。
那么它是怎样工作的?
谢谢!