小编典典

.net中ObservableCollection的用途是什么?

c#

.net中ObservableCollection的用途是什么?


阅读 514

收藏
2020-05-19

共1个答案

小编典典

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
        }
    }
}
2020-05-19