.net中ObservableCollection的用途是什么?
ObservableCollection是一个集合,它使集合外部的代码可以知道何时发生对集合的更改(添加,移动,删除)。它在WPF和Silverlight中大量使用,但不仅限于此。代码可以添加事件处理程序以查看集合何时更改,然后通过事件处理程序做出反应以进行一些其他处理。这可能是更改UI或执行其他操作。
下面的代码实际上没有做任何事情,但是演示了如何在类中附加处理程序,然后使用事件args对更改做出某种反应。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 } } }