首页 > 技术文章 > INotifyPropertyChanged接口

xianyuxihuamao 2017-11-28 11:52 原文

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作为其他绑定源,属性更改时,界面会自动更新相应的值,而无需重置的绑定

推荐阅读