簡體   English   中英

為什么可觀察的收集事件args中有更改列表?

[英]Why there is list of changes in observable collection event args?

我試圖了解為什么有兩個列表屬性NewItemsOldItems而一次只能添加或刪除單個項目?

private void InternalCollectionChanged(object sender, NotifyCollectionChangedEventArgs args)
{
    var changes = args.NewItems; // why this is a list?
}

我查看了ObservableCollection可用方法,但一次只能添加或刪除單個項目。

如果我一次只能添加或刪除一個項目,那么為什么要在事件args中包含更改列表而不是單個添加或刪除更改是什么原因?

ObservableCollection<T>INotifyCollectionChanged接口的實現,實際上它不支持添加或刪除多個項目。 但是,您可以創建自己的實現INotifyCollectionChanged (和INotifyPropertyChanged )的集合類,該類將支持添加或刪除多個項目。

作為@Pavel答案的附加信息, ObservableCollection<T>不支持此功能,但是您可以創建支持此功能的ObservableCollection<T>自定義派生類型。 一個很好的例子是James Montemagno的ObservableRangeCollection此Stack Overflow答案中甚至更優化的版本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM