在wpf中将控件绑定到对象的属性时, 当对象的属性发生改变时必须通知控件作出相应的改变, 所以此对象需要实现 INotifyPropertyChanged 接口
例1: (注意:从 .Net 4.5 才开始支持此特性)
//实现属性变更通知接口 INotifyPropertyChanged public class TestA : INotifyPropertyChanged { public long ID { get; set; } private string name; public string Name { get { return this.name; } set { if (value != this.name) { this.name = value; //调用属性变更通知方法 NotifyPropertyChanged(); } } } // INotifyPropertyChanged 接口成员 public event PropertyChangedEventHandler PropertyChanged; //此方法在每个属性的set中调用 //在可选参数propertyName上应用CallerMemberName特性 //调用此方法时,调用方的信息将替换为可选参数的参数,即在set中调用此方法,propertyName="当前属性的名称" private void NotifyPropertyChanged([CallerMemberName] String propertyName = "") { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } } }
例2:(.net 4.0)
//实现属性变更通知接口 INotifyPropertyChanged public class TestA : INotifyPropertyChanged { public long ID { get; set; } private string name; public string Name { get { return this.name; } set { if (value != this.name) { this.name = value; //调用属性变更通知方法,参数为"属性名称" NotifyPropertyChanged("Name"); } } } // INotifyPropertyChanged 接口成员 public event PropertyChangedEventHandler PropertyChanged; private void NotifyPropertyChanged(String info) { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(info)); } } }