c# PropertyGrid用枚举键编辑数组

本文关键字:编辑 数组 枚举 PropertyGrid | 更新日期: 2023-09-27 17:52:52

我有一个属性

int [] MyProperty {get;set;}

我有一个枚举列表

enum MyEnums
{
    ENUM1=0
    ENUM2=1
    ENUM3=2
}

属性必须是int数组,因为在将属性序列化到文件的代码上运行的工具。我希望我的属性网格允许我编辑MyProperty,将enum名称显示为键,而不是0,1和2。数组的长度必须与枚举列表相同,这样就不能添加或删除任何成员。我想我需要一个自定义编辑器来实现这一点?有谁能提出最好的建议来实现这个目标吗?

多谢

c# PropertyGrid用枚举键编辑数组

在这种情况下你应该使用字典

Dictionary<MyEnums, int> MyProperty {get; set;}

另外,您可以实现自己的"包装器"类,并使用MyEnums为其添加索引器http://msdn.microsoft.com/en-us/library/6x16t2tx.aspx

可以使用ToString作为枚举值。此外,似乎你的方向关于属性编辑是不正确的。您可以创建一个类,例如:

class EnumPropHolder
{
   MyEnums Prop1 = MyEnums.Enum1 {get;set;}
   MyEnums Prop2 = MyEnums.Enum2 {get;set;}
   //etc.
}

所以现在你可以使用你的类实例作为PropertyGrid的对象就像你所说的