プロパティを持つカスタムコントロールがありItems
ます。タイプのを適用しEditorAttribute
ました。UITypeEditor
CollectionEditor
コレクションタイプ:
[Serializable]
[Editor(typeof(CollectionEditor), typeof(UITypeEditor))]
public class ListItemsCollection : CollectionBase
{
// methods
}
コントロールのプロパティ宣言:
private new ListItemsCollection _Items;
[Editor(typeof(CollectionEditor), typeof(UITypeEditor))]
public new ListItemsCollection Items
{
get
{
return _Items;
}
set
{
_Items = value;
// do other UI changes
}
}
問題:
このコントロールをデザイナー画面にドロップすると、を使用してItemsプロパティにアイテムを追加できますPropertyGrid
。しかし、プロパティのセッターのOk
ボタンをクリックしても呼び出されません。CollectionEditor
Items
EditValue
クラスのメソッドから値が返されるUITypeEditor
と、プロパティのsetterブロックが呼び出されることになっています。
これは私を狂わせています。Event
に'を追加してみListItemsCollection
たので、アイテムが追加されたときに、コントロールのUIを使用して好きなことを実行できます。
これは難しいことではありません。私は何が間違っているのですか?