ObservableCollection是一个集合,它允许集合外部的代码在集合发生更改(添加、移动、删除)时能够察觉.它在WPF和Silverlight中大量使用,但其使用并不限于此.代码可以添加事件处理程序,以查看集合何时发生了更改,然后通过事件处理程序做出react ,进行一些额外的处理.这可能是更改UI或执行其他操作.
下面的代码实际上没有做任何事情,只是演示了如何在类中附加一个处理程序,然后使用事件参数以某种方式对更改做出react .WPF已经有许多操作,比如刷新内置的UI,因此您在使用ObservableCollects时可以免费获得这些操作
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
}
}
}