INotifyPropertyChanged WPF

3 wpf inotifypropertychanged

INotifyPropertyChanged的目的是什么?我知道每当更改属性时都会触发此事件,但View/UI如何知道此事件被触发:

这是我的Customer类,它实现了INotifyPropertyChanged事件:

public class Customer : INotifyPropertyChanged
    {
        private string _firstName;

        public string LastName { get; set; }

        public event PropertyChangedEventHandler PropertyChanged;

        protected void OnPropertyChanged(string propertyName)
        {
            if(PropertyChanged != null)
                PropertyChanged(this,new PropertyChangedEventArgs(propertyName));

        }

        public string FirstName
        {
            get { return _firstName; }

            set
            {
                _firstName = value;
                OnPropertyChanged("FirstName");
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

但现在如何通知UI属性已更改.就像用户为第一个名称指定null或empty一样,如何在UI上显示MessageBox.

Ree*_*sey 5

INotifyPropertyChanged允许WPF UI元素(通过标准数据绑定机制)订阅PropertyChanged事件并自动更新.例如,如果您有一个TextBlock显示您的FirstName属性,通过使用INotifyPropertyChanged,您可以在表单上显示它,并且当代码中的FirstName属性更改时它将自动保持最新.

View只是订阅了这个事件 - 告诉它必要的一切.该事件包含已更改属性的名称,因此如果UI元素绑定到该属性,则会更新该属性.