.net 中的 ObservableCollection 有什么用?
ObservableCollection 是一个集合,它允许集合外部的代码知道何时对集合进行更改(添加、移动、删除)。它在 WPF 和 Silverlight 中被大量使用,但它的使用不仅限于此。代码可以添加事件处理程序以查看集合何时发生更改,然后通过事件处理程序做出反应以进行一些额外的处理。这可能是更改 UI 或执行一些其他操作。
下面的代码实际上并没有做任何事情,而是演示了如何在类中附加处理程序,然后使用事件参数以某种方式对更改做出反应。WPF 已经有许多操作,例如刷新内置的 UI,因此您可以在使用 ObservableCollections 时免费获得它们
class Handler { private ObservableCollection<string> collection; public Handler() { collection = new ObservableCollection<string>(); collection.CollectionChanged += HandleChange; } private void HandleChange(object sender, NotifyCollectionChangedEventArgs e) { foreach (var x in e.NewItems) { // do something } foreach (var y in e.OldItems) { //do something } if (e.Action == NotifyCollectionChangedAction.Move) { //do something } } }