The WPF binding engine can use INotifyPropertyChanged (INpc) out of the box.
INpc, as the name allows WPF to detect changes to object properties that may or may not be part of the collection.
ObservableCollection (OC) implements INotifyCollectionChanged (InCC), where, as you say, the collection itself notifies WPF (and everyone who has the ability to handle updates) of updates to its collection of elements (adding exceptions, etc.). If OC contains objects that themselves do not implement INpc, WPF has no way of knowing how the properties of each element have changed.
Update
Answering the following question: "Can we rely on an INPC collection event instead of registering for every new item to receive a notification?" the answer is no. If each element does not implement Inpc in its properties, WPF has no way of knowing which values ββhave been changed for each position.
WPF will still know from OC when items were partially added or removed. The Items property uses INpc to notify you of updates just like any class that implements INpc in its properties. InCC is implemented to track changes to the collection of non-values ββfor each item in the items.
Andrew
source share