PropertyGrid - Ilist コレクションの削除が期待どおりに起動しない
-
20-08-2019 - |
質問
IList を実装するコレクション オブジェクトがあります。コレクション内では、リストを使用してアイテムを収集しました。PropertyGrid 内 (実行時) は適切にバインドされ、コレクション エディターが開きます。編集でき、項目を適切に追加でき、コレクション クラスで使用されるこれらのメソッドをキャッチできます。
ただし、項目を削除しようとすると、それらはコレクションから削除されますが、IList.Remove も IList.RemoveAt もコレクションからは使用されていないようです。削除されたアイテムはデータベースからも削除されることを意味しており、この動作は Remove メソッドで実装されています。
また、削除メソッドからすべてのロジックを削除し、 throw new NotImplmented() を残しましたが、これらはまったく起動されません。
独自の CollectionEditor も実装していますが、オブジェクトにフックする方法がまだわかりません。
では、関連するメソッドを見つけるにはどこを調べればよいのでしょうか?アイテムの動作も変更する必要がありますか?
解決
コレクションエディターは使用しません 取り除く または 削除場所. 。代わりに、ユーザーが [OK] ボタンを押すと、 IList.Clear メソッドを呼び出してから呼び出す IList.Add コレクションに含まれるすべてのアイテムを追加します。の非汎用バージョンでは動作しないというわけではありません IList.
他のヒント
まあ、ラット!
私のCollectionEditor内の実際のコレクションのホールドを取得する方法はありますか? 私はコレクションを取得して、[OK]が押されていたら、それを比較し、そこからレコードを削除すると思います。
マトリックスのスクリーンセーバーほこりは、良い本を掘ると、それはコンパイルだ誰も教え、という障害が発生します。