结合List和ObservableCollection

时间:2013-09-03 19:55:56

标签: c# wpf .net-4.0

我有一个WPF应用程序,它包含一个绑定到List的数据网格。我的列表实现了INotifyPropertyChanged接口。所以我可以看到房产何时发生变化。但是,当添加或删除新项目时,没有任何事件可以告诉我发生了这种情况。

阅读后我看到ObservableCollection可以告诉我何时通过CollectionChanged事件添加或删除了一个项目。然而,ObservableCollection有一些列表克服的缺点。

所以我的问题是,是否可以组合List& ObservableCollection所以你有两个功能?是否可以让List继承自?如果有,是否有任何需要覆盖的方法?

1 个答案:

答案 0 :(得分:0)

你的问题的简单答案是“是的,但有一些工作”。

ObservableCollection<T>类扩展了Collection<T>类,它实现了IList<T>ICollection<T>IEnumerable<T>IList,{{1} },ICollection接口 - 与IEnumerable类相同。但是,List<T>类还实现了ObservableCollection<T>INotifyCollectionChanged接口,因此这些是两者之间的主要区别。

因此,您可以扩展INotifyPropertyChanged类并自行手动实现List<T>INotifyCollectionChanged接口,以充分利用这两个界限。话虽如此,在手动将INotifyPropertyChangedAddRange方法添加到我的自定义Sort基类之后,我从未觉得需要使用ObservableCollection<T>来显示任何我的WPF项目。