ObservableCollection
INotifyCollectionChanged
と の両方を実装しINotifyPropertyChanged
ます。
アイテムの追加、削除 (+ クリア)、および置換は、コレクションのイベント を通じて消費者に通知可能であり、既存のアイテムの更新は、アイテムがそれ自体を実装する場合、アイテムのイベント
CollectionChanged
を使用して監視できることを理解しています。PropertyChanged
INotifyPropertyChanged
読み取り専用であるため、コレクションのイベントに登録できないことを他の人から読みました
PropertyChanged
。
では、その目的は何なのか、私たちはそれをどのように利用できるのでしょうか?
あちこちのコメントは、コレクションとアイテムの両方のコンテンツの変更を通知できるように、両方のインターフェイスを実装することが魔法のようであることを暗示して、議論を混乱させているようですがObservableCollection
、これは正しくありません (これは、コレクションがアイテムのコンテンツが変更された後に魔法のように更新されるリストボックスにバインドされており、コレクションがリストボックスに通知することを示唆しています)。
実際、コレクションの唯一の利点は実装することINotifyCollectionChanged
です。アイテム プロパティの変更を処理するObservableCollection
のは、別のコレクションよりも簡単ではないようです。アイテムが を実装している場合にのみ可能ですが、実装INotifyPropertyChanged
していない可能性があり、ユーザーがコレクションとは無関係にこのイベントをフックできた場合にのみ可能です。
これは正しいです?