我最近发现WPF以两种不同的方式处理INotifyPropertyChanged。我只想知道原因是什么。
让我们来看一个普通的启用验证的双向绑定。
如果您从UI设置属性到ViewModel,则会按照以下方式进行:
- setter调用开始
- 值设置
- INotifyPropertyChanged开始
- INotifyPropertyChanged完成
- setter完成
- getter调用和完成
- IDataErrorInfo调用和完成
但是,如果您在ViewModel中设置属性,则会按照以下方式进行:
- setter调用开始
- 值设置
- INotifyPropertyChanged开始
- getter调用和完成
- IDataErrorInfo调用和完成
- INotifyPropertyChanged完成
- setter完成