自动通知Binding
如果想让作为bingding源的对象具有自动通知Binding自己的属性值已经变化的能力,那么就需要让类实现INotifyPropertyChanged接口并在属性的set语句中激发PropertyChanged事件。
具体做法如下:
1、由于有很多类会实现INotifyPropertyChanged接口,所以可以新建一个抽象的基类BaseObject。继承INotifyPropertyChanged接口,并修改访问类型为Public。
代码如下:
public event PropertyChangedEventHandler PropertyChanged;
public virtual void RaisePropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged (this, new PropertyChangedEventArgs(propertyName));
}
}
2、ViewModel继承基类BaseObject,并在属性块set语句中调用RaisePropertyChanged方法。
代码如下:
public void Class : BaseObject
……
private string name;
public string Name
{
get { return name; }
set
{
name = valve;
RaisePropertyChanged("Name");
}
}