带有枚举键的c#PropertyGrid编辑数组

带有枚举键的c#PropertyGrid编辑数组,c#,winforms,enums,propertygrid,C#,Winforms,Enums,Propertygrid,我有一处不动产 int [] MyProperty {get;set;} 我有一个枚举列表 enum MyEnums { ENUM1=0 ENUM2=1 ENUM3=2 } 由于在将属性序列化为文件的代码上运行的工具,该属性必须是int数组。 我希望我的属性网格允许我编辑MyProperty,将枚举名称显示为键,而不是0、1和2。数组的长度必须与枚举列表的长度相同,因此不能添加或删除任何成员。我想我需要一个自定义编辑器来实现这一点?有谁能对实现这一目标的最佳方式提出建

我有一处不动产

int [] MyProperty {get;set;}
我有一个枚举列表

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


非常感谢

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

Dictionary<MyEnums, int> MyProperty {get; set;}
Dictionary MyProperty{get;set;}
此外,您还可以实现自己的“包装器”类,并使用MyEnums为其添加索引器

可以用于枚举值。此外,您对属性编辑的指导似乎也不那么正确。您可以创建一个类,例如:

class EnumPropHolder
{
   MyEnums Prop1 = MyEnums.Enum1 {get;set;}
   MyEnums Prop2 = MyEnums.Enum2 {get;set;}
   //etc.
}
现在,这使您能够使用您的类实例作为PropertyGrid的对象,就像您所说的那样