2017-04-22 7 views
2

私は観察可能なコレクションプロパティを持つクラスを持っており、このプロパティをPropertyGridで編集します。そこからいくつかの項目を削除し、OKボタンを押すと、CollectionChangedイベントを発生させ始めますが、Remove Actionでイベントを発生させません。 最初に、リセットアクションでイベントを発生させ、残りのアイテムのアクションを追加してイベントを発生させます。プロパティグリッドを介して観測可能なコレクションを編集する

コレクションが最後のCollectionChangedイベントを発生させるとき、どうすれば入手できますか?

削除されたアイテムはどのように取得できますか?

+0

あなたが正しく理解している場合は、各追加のイベントを回避したいと思います。その場合、[this thread](http://stackoverflow.com/questions/9570800/why-does-observablecollection-not-support-bulk-changes)をチェックし、RangeObservableCollectionを調べることができます。 – Default

答えて

0

私はかなり変わった解決策を出しましたが、それは私のために働きました。明らかに邪悪な側面がいくつかありますが、今のところそれは何もないよりも優れています。

CollectionChangedが起動するたびに、タイマーが経過すると、たとえば500ms間隔でローカルタイマーを開始します。最後に変更されたイベントが既にトリガーされています。

また、観測可能なコレクションにアイテムの一意のIDのローカルコピーがあります。タイマー経過後、コレクションから削除されたアイテムを確認できるので、バインドされたデータをクリーンアップできます。

関連する問題