我有一个属性
int [] MyProperty {get;set;}
我有一个枚举列表
enum MyEnums
{
ENUM1=0
ENUM2=1
ENUM3=2
}
属性必须是int数组,因为在将属性序列化到文件的代码上运行的工具。我希望我的属性网格允许我编辑MyProperty,将enum名称显示为键,而不是0,1和2。数组的长度必须与枚举列表相同,这样就不能添加或删除任何成员。我想我需要一个自定义编辑器来实现这一点?有谁能提出最好的建议来实现这个目标吗?
多谢
在这种情况下你应该使用字典
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的对象就像你所说的