自动通知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");

     }

}

posted @ 2013-11-09 19:25  jiangjiuwen  阅读(165)  评论(0编辑  收藏  举报