ObservableCollection
implementiert sowohl INotifyCollectionChanged
als auch INotifyPropertyChanged
.Was ist der Zweck der Implementierung von INotifyPropertyChanged auf ObservableCollection?
Ich verstehe, dass Ergänzungen, Deletionen (+ clear), und Ersatz von Artikel sind meldepflichtig die Verbraucher durch die Sammlung ‚s Ereignis
CollectionChanged
, und dass Updates in den vorhandenen Elemente können sein überwacht unter Verwendung der Elemente 'EreignisPropertyChanged
, wenn sie selbstINotifyPropertyChanged
implementieren.ich von anderen gelesen, dass man nicht Register auf der Veranstaltungs Sammlung
PropertyChanged
weil es nur lesbar ist.
Also, was ihr Zweck ist es, welche Nutzung können wir davon? Die Kommentare hier und dort scheinen die Diskussion verwirrend zu machen, indem sie andeuten, dass die Magie von ObservableCollection
darin besteht, beide Schnittstellen zu implementieren, so dass sie sowohl für Sammlung als auch für Inhaltsänderungen benachrichtigt werden können, obwohl dies nicht korrekt ist viele Beispiele, bei denen die Sammlung an eine Listbox gebunden ist, die sich magisch ändert, nachdem der Inhalt der Elemente geändert wurde, was darauf hinweist, dass die Sammlung die Listbox benachrichtigt).
Eigentlich scheint es die einzige Überlegenheit der Sammlung zu implementieren INotifyCollectionChanged
. Mit ObservableCollection
umzugehen, ist mit ObservableCollection
gar nicht einfacher: Es ist nur möglich, wenn die Elemente INotifyPropertyChanged
implementieren, was sie nicht tun dürfen, und wenn der Benutzer dieses Ereignis unabhängig von der Sammlung anhängt.
Ist das korrekt?
Während sachlich präzise und prägnant bin ich mir nicht sicher, wie das beantwortet die "so was ist der Zweck?" Teil der Q – Andrew
Der Zweck ist, Abonnenten zu benachrichtigen, dass die Sammlung geändert wurde. In diesem Aspekt dient es dem gleichen Zweck wie das CollectionChanged-Ereignis, aber INotifyPropertyChanged wird weiter unterstützt als INotifyCollectionChanged –
wie für den Fall, dass etwas an die Anzahl der Sammlung bindet. – dan