INotifyPropertyChanged 接口用于通知客户端,通常执行绑定的客户端,属性值已更改。
例如,考虑 Person 具有一个名为属性对象 FirstName。 若要提供通用的属性更改通知 Person 类型实现 INotifyPropertyChanged 接口,并引发PropertyChanged 事件时 FirstName 更改。
在绑定的客户端和数据源之间的绑定中发生的更改通知,则绑定的类型应具有下列任一功能︰
-
实现 INotifyPropertyChanged 接口 (首选)。
-
提供的绑定类型的每个属性更改事件。
上述这两个功能不要同时实现。
//实现INotifyPropertyChanged接口的类
public class PersonInformation: INotifyPropertyChanged
{ private string id; private string name; private string pic; public string ID { get { return id; } set { id = value; PropertyChangedMethod("ID"); } } public string Name { get { return name; } set { name = value; PropertyChangedMethod("Name"); } } public string Pic { get { return pic; } set { pic = value; PropertyChangedMethod("Pic"); } } /// <summary> /// 定义属性改变通知事件方法 /// </summary> /// <param name="propertyName"></param> private void PropertyChangedMethod(string propertyName) { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } } public event PropertyChangedEventHandler PropertyChanged; }
这个PersonInformation作为其他绑定源,属性更改时,界面会自动更新相应的值,而无需重置的绑定