コレクションエディターをキャンセルするには、次のようにタイプを設定する必要があることがわかりました。
public class MyCollectionEditor : CollectionEditor
{
public MyCollectionEditor(Type type)
: base(type)
{
}
public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.None;
}
}
そして、次のように使用します。
[Editor(typeof(MyCollectionEditor), typeof(System.Drawing.Design.UITypeEditor))]
public class MyCollection : CollectionBase, ICustomTypeDescriptor
{
//...
}
次のリンクで見つけることができます (Alan Seedhouse の質問への回答):
PropertyGrid でのコレクション データのカスタマイズされた表示
私の問題はMyCollection.cs
、 UI で (ただしクラス ライブラリで) を定義していないため、 から継承できないことですCollectionEditor
。
これを行う別の方法はありますか?