ObservableCollection
met en œuvre les deux INotifyCollectionChanged
et INotifyPropertyChanged
.Quel est le but d'avoir implémenté INotifyPropertyChanged sur ObservableCollection?
Je comprends que les ajouts, suppressions (+ clair), et le remplacement des articles sont à déclaration obligatoire aux consommateurs par l'événement de collection
CollectionChanged
, et que les mises à jour dans les articles existants peuvent être surveillé en utilisant le articles 'événementPropertyChanged
si elles mettent en œuvre eux-mêmesINotifyPropertyChanged
.Je lis des autres que vous ne pouvez pas inscrire sur l'événement de la collection
PropertyChanged
parce qu'il est en lecture seule.
Alors, quel est son but, quelle utilisation pouvons-nous faire de ce?
Les commentaires ici et là semblent rendre la discussion confuse en impliquant que la magie de ObservableCollection
est de mettre en œuvre les deux interfaces, permettant d'être notifié à la fois pour la collection et les changements de contenu des éléments, alors que cela n'est pas correct. de nombreux exemples où la collection est liée à une liste déroulante qui est mise à jour de façon magique après le changement du contenu des éléments, ce qui suggère que la collection informe la liste).
En fait, il semble que la seule supériorité de la collection est de mettre en œuvre INotifyCollectionChanged
. Traiter avec des éléments propriété modifications ne semble pas du tout facile avec ObservableCollection
qu'avec une autre collection: il est possible que si les articles met en œuvre INotifyPropertyChanged
, qu'ils ne peuvent pas faire, et si l'utilisateur parvient à accrocher cet événement indépendamment de la collection.
Est-ce correct?
alors que je suis factuellement exacte et concise ne sais pas comment cela répond à la « ce qui est donc le but? » partie du Q – Andrew
Le but est d'informer les abonnés que la collection a changé. Dans cet aspect, il sert le même but que l'événement CollectionChanged, mais INotifyPropertyChanged est plus largement supporté que INotifyCollectionChanged –
comme dans le cas où quelque chose se lie au compte de la collection. – dan