反正有没有让PropertyGrid的CollectionEditor能够添加到集合继承的类中?

时间:2014-07-07 06:36:33

标签: .net inheritance collections elements propertygrid

enum ClassType
{
    BASE,
    A,
    B
}

class BaseClass
{
    ClassType CT;
    //some fields
}

class AClass : BaseClass
{
    //some fields
}

class BClass : BaseClass
{
    //some fields
}

class Holder
{
    public List<BaseClass> list { get; set; }
}

然后我有一个集合List<BaseClass> list;

如果我将Holder的实例加载为PropertyGrid.SelectedObject,我将能够添加,编辑和删除集合中的元素,但我只能添加BaseClass,我想要的是选择要添加的类清单。

这可以不用我自己的收藏编辑器吗?

对于ContextMenuStrip.Items编辑器需要类似的东西,但我不知道它是如何制作的。 enter image description here

1 个答案:

答案 0 :(得分:1)

您可能想尝试从它继承并重写NewItemTypes属性:

http://msdn.microsoft.com/en-us/library/system.componentmodel.design.collectioneditor.newitemtypes(v=vs.110).aspx

您需要在集合类型中添加EditorAttribute以指定继承的编辑器。