1

コレクションエディターをキャンセルするには、次のようにタイプを設定する必要があることがわかりました。

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

これを行う別の方法はありますか?

4

1 に答える 1

0

最終的には次のように機能しました。

public class MyCollectionEditor : UITypeEditor
{ 
    public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context)
    {
        return UITypeEditorEditStyle.None;
    }
}
于 2013-04-10T12:02:55.360 に答える