1

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

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

所以我的问题是,是否可以将 List 和 ObservableCollection 结合起来,这样你就拥有了两者的功能?是否可以让 List 继承自?如果是这样,是否有任何需要覆盖的方法?

4

1 回答 1

0

您的问题的简单答案是“是的,但需要一些工作”。

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

因此,您可以扩展List<T>类并自己手动实现INotifyCollectionChangedINotifyPropertyChanged接口,以获得两全其美的效果。话虽如此,在向我的自定义基类手动添加AddRangeSort方法之后ObservableCollection<T>,我从未觉得需要List<T>在我的任何 WPF 项目中使用 a 来显示对象。

于 2013-09-04T09:27:02.023 回答