さて、ObservableCollectionにバインドするXAMLファイルにItemsControlがあります。 ObservableCollectionはビューモデルクラス(このクラスをViewModelAと呼ぶ)にあり、ObservableCollectionの各アイテムはという別のビューモデルクラス(ViewModelBクラスを呼び出しましょう)のインスタンスです。観察可能なコレクション内のアイテムのプロパティが変更されたことを通知するにはどうすればよいですか?
ViewModelAにプロパティがあり、変更された場合、間接的には、ViewModelBクラスの多くのインスタンスにあるプロパティの値を変更します。つまり、ViewModelBに直接行かず、そのプロパティを設定してINotifyPropertyChange呼び出しを引き起こすのではなく、モデルにいくつかのプロパティを設定し、モデルの変更がViewModelBが表示するものに影響します景色。
ViewModelBの何かが変更されたことをビューに通知するにはどうすればよいですか?
1を含むフレームワークの多くにイベントアグリゲータの詳細情報を見つけることができます。あなたの答えは質問よりもはっきりしているので、私は一般的なケースを繰り返し述べます:変更のビューを通知する2つの方法は、 'INotifyCollectionChanged'と' INotifyPropertyChanged'です。しかし、あなたのビューモデルが相互依存している場合は、あなたのビューモデルでそれらのインタフェースを消費し、必要に応じて通知をバブルアップすることは完全に当然です。 –
ここで重要な点は、コレクションそのものは変更されていないことです。そのため、INotifyCollectionChangedは良くありません。しかし、私はモデルクラスにINotifyPropertyChangedを実装することができるので、うまくいくように見えます。助けてくれてありがとう! – David