最近、wpf が INotifyPropertyChanged を 2 つの異なる方法で処理することがわかりました。何が理由なのか知りたいだけです。
検証が true の通常の双方向バインディングを考えてみましょう。
ui から viewmodel にプロパティを設定すると、このようになります。
- セッター呼び出し開始
- 値セット
- INotifyPropertyChanged を開始しました
- INotifyPropertyChanged完了
- セッター完了
- ゲッターが呼び出されて完了
- IDataErrorInfo が呼び出されて完了
ただし、ビューモデルでプロパティを設定すると、次のようになります
- セッター呼び出し開始
- 値セット
- INotifyPropertyChanged を開始しました
- ゲッターが呼び出されて完了
- IDataErrorInfo が呼び出されて完了
- INotifyPropertyChanged完了
- セッター完了