鉴于我无法将对象的类型更改为 observablecollection,我想观察 Icollection 对象的变化。如何实现?
mycollectionobserver = Observable.FromEventPattern<NotifyCollectionChangedEventArgs> (source.IcollectionItems, "CollectionChanged").Subscribe(OnItemsChanged);
鉴于我无法将对象的类型更改为 observablecollection,我想观察 Icollection 对象的变化。如何实现?
mycollectionobserver = Observable.FromEventPattern<NotifyCollectionChangedEventArgs> (source.IcollectionItems, "CollectionChanged").Subscribe(OnItemsChanged);
什么代码实际上是在修改集合?您是否能够将您自己的对象引用传递给该代码而不是对原始ICollection<T>
对象的引用?
如果第二个问题的答案是“否”,那么你就不走运了。但是,如果您可以用自己的对象引用替换对象引用,那么您可以在ICollection<T>
对象本身实现的对象周围实现一个包装器INotifyCollectionChanged
。这样,您自己的对象将能够看到对集合的每一次修改并引发适当的INotifyCollectionChanged
事件。
如果您不能这样做,那么修改集合的代码将无法使用您的自定义实现,并且始终能够在您自己的代码无法了解它的情况下修改集合。
最后,请注意有人可能已经编写了这样的包装器。我没有通过快速谷歌搜索找到任何东西,但我并没有很努力。如果确实存在,我不会感到惊讶。