背景:我试图通过实现 IEnumerable、INotifyPropertyChanged 和 INotifyCollectionChanged 来推出我自己的 observable 集合。它工作正常,但是当我进行数据绑定时,CollectionChanged 事件始终为空。然而,数据绑定属性确实更新了,因为我正在发送 Items[] 属性更改事件。所以这让我想知道 INotifyCollectionChanged 在数据绑定方面的意义是什么,因为在我的课程中它永远不会被触发,但数据绑定仍然有效(它更新了对集合的所有绑定)。
然后我决定做更多的挖掘,并反编译 ObservableCollection。当我将数据绑定到 ObservableCollection 时,CollectionChanged 事件不像我的实现那样为空。
所以我真的想知道为什么 ObservableCollection 得到“特殊”处理,以及 INotifyCollectionChange 在数据绑定中扮演什么角色(如果有的话)