表示一个动态数据集合,在添加项、移除项或刷新整个列表时,此集合将提供通知。

在许多情况下,所使用的数据是对象的集合。例如,数据绑定中的一个常见方案是使用ItemsControl(如 ListBoxListViewTreeView)来显示记录的集合。

可以枚举实现IEnumerable接口的任何集合。但是,若要设置动态绑定,以使集合中的插入或移除操作可以自动更新 UI,则该集合必须实现INotifyCollectionChanged接口。此接口公开CollectionChanged事件,只要基础集合发生更改,都应该引发该事件。

WPF 提供 ObservableCollection 类,它是实现INotifyCollectionChanged接口的数据集合的内置实现


在实现自己的集合之前,请先考虑使用 ObservableCollection或一个现有的集合类,如ListCollectionBindingList等。如果有高级方案并且希望实现自己的集合,请考虑使用IList,它提供可以通过索引逐个访问的对象的非泛型集合。如果实现IList,则将使用数据绑定引擎提供最佳性能