2017-04-22 70 views
2

我有一個具有可觀察集合屬性的類,我使用PropertyGrid編輯此屬性。當我從中刪除一些項目並按下OK按鈕時,我的集合開始觸發CollectionChanged事件,但它不會使用Remove Action觸發事件。 首先它通過重置動作觸發事件,然後使用剩餘項目的添加動作觸發事件。通過屬性網格編輯可觀察集合

收集火災發生時最後一次CollectionChanged事件時,我該如何獲得?

我怎樣才能得到哪些項目被刪除?

+0

如果我正確理解你,你想避免每個添加事件。在這種情況下,你可以檢查[這個線程](http://stackoverflow.com/questions/9570800/why-does-observablecollection-not-support-bulk-changes)並研究RangeObservableCollection - 它對我來說非常好! – Default

回答

0

嗯,我做了一個很奇怪的解決方案,但它爲我工作,MB它會幫助以後的人。它有一些明顯的邪惡的一面,但現在它總比沒有好。

每當CollectionChanged被觸發時,我會以例如500ms間隔啓動本地計時器,如果計時器已過時 - 上次收集已更改事件已觸發。

此外,我有我的可觀察集合中的項目的唯一ID的本地副本,所以在計時器過去後,我可以檢查哪些項目已從集合中刪除,所以我可以清除綁定在它上面的數據。