簡體   English   中英

ObservableCollection(T).CollectionChanged事件

[英]ObservableCollection(T).CollectionChanged Event

SelectedObjects.CollectionChanged += (s, e) =>
{
    Console.WriteLine(e.NewItems.Count);//prints out 1 if a new item is added
};

有一件事我不確定是為什么e.OldItems和e.NewItems是收藏品?

如果我每秒添加多個項目,事件會被觸發foreach項目,輸出總是1,這意味着它被多次觸發,但有沒有辦法延遲事件觸發,例如在更改5秒后我可以在e.OldItems或e.NewItems中獲得5秒內的每一個變化?

不可以。可觀察集合的要點是在修改事件時提升事件。 雖然在您的用例中,希望在一段時間后得到通知,但並不是每個用例都會使課程過於復雜。

您可以做的是將可觀察集合包裝到您創建的自定義類中(例如, DelayedObservableCollection<T> ,並且 - 與計時器一起 - 在添加/修改項目時引發其自己的事件,然后沒有項目在指定時間后添加/修改,或者添加/修改超過“x”項目。

暫無
暫無

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

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