0

IList を実装するコレクション オブジェクトがあります。コレクション内では、リストを使用してアイテムを収集しました。PropertyGrid 内 (実行時) で適切にバインドされ、コレクション エディターが開きます。編集することも、項目を適切に追加することも、コレクション クラスで使用されているこれらのメソッドをキャッチすることもできます。

ただし、アイテムを削除しようとすると、コレクションから削除されますが、コレクションから IList.Remove または IList.RemoveAt が使用されているようには見えません。削除されたアイテムは、データベースから削除されることも意図されています。この動作は、Remove メソッドで実装します。

また、remove メソッドからすべてのロジックを削除し、新しい NotImplmented() をスローして残しましたが、これらはまったく発生しません。

また、独自の CollectionEditor によって実装されていますが、オブジェクトにフックする方法がまだわかりません。

では、関連するメソッドを見つけるにはどこを探すべきですか? アイテムの動作も変更する必要がありますか?

4

2 に答える 2

0

コレクションエディタは、 RemoveまたはRemoveAtを使用しません。代わりに、ユーザーが[OK]ボタンを押すと、IList.Clearメソッドが呼び出され、次にIList.Addが呼び出されて、コレクションに含まれるすべてのアイテムが追加されます。非汎用バージョンのIListで動作するわけではありません。

于 2009-01-27T16:26:27.587 に答える
0

さて、ラット!

CollectionEditor 内で実際のコレクションを取得する方法はありますか? コレクションを取得し、[OK] をクリックして比較し、そこからレコードを削除すると思います。

それができない場合は、マトリックス スクリーン セーバーのほこりを払い、良い本を掘り出して、編集中であることをみんなに伝えます。

于 2009-01-27T17:21:08.177 に答える