![](/img/trans.png)
[英]Why Observable Collection is updating the ListView only when event is fired
[英]Why there is list of changes in observable collection event args?
我試圖了解為什么有兩個列表屬性NewItems
和OldItems
而一次只能添加或刪除單個項目?
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.