INotifyPropertyChanged从Dotnet2就存在了,也一向用在数据绑定上。你的情况数据源是要实现该接口。 public partial class Form1 : Form, INotifyPropertyChanged //<--实现INotifyPropertyChanged
{
public string _s = "xyz";
public string S
{
get { return _s; }
set { if (_s != value) { _s = value; FirePropertyChanged("S"); } } //<--通知属性更改,相关控件可以更新显示
} #region INotifyPropertyChanged Members
public event PropertyChangedEventHandler PropertyChanged;
void FirePropertyChanged(string propertyName)
{
PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
if (propertyChanged != null) propertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
#endregion
}
{
public string _s = "xyz";
public string S
{
get { return _s; }
set { if (_s != value) { _s = value; FirePropertyChanged("S"); } } //<--通知属性更改,相关控件可以更新显示
} #region INotifyPropertyChanged Members
public event PropertyChangedEventHandler PropertyChanged;
void FirePropertyChanged(string propertyName)
{
PropertyChangedEventHandler propertyChanged = this.PropertyChanged;
if (propertyChanged != null) propertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
#endregion
}
在set里面去触发EventHandler通知所有的观察者。这些观察者在DataBinding.Add的时候自动会注册到实现了INotifyPropertyChanged接口的对象上面。现在很清楚了。多谢!
在set里面去触发EventHandler通知所有的观察者。这些观察者在DataBinding.Add的时候自动会注册到实现了INotifyPropertyChanged接口的对象上面。现在很清楚了。多谢!学习了