在Enum ToString中,描述了一种使用自定义属性的方法,DescriptionAttribute如下所示:
DescriptionAttribute
Enum HowNice { [Description("Really Nice")] ReallyNice, [Description("Kinda Nice")] SortOfNice, [Description("Not Nice At All")] NotNice }
然后,您GetDescription使用如下语法调用function :
GetDescription
GetDescription<HowNice>(NotNice); // Returns "Not Nice At All"
但是, 当我只想用枚举的值填充ComboBox时GetDescription,这并没有真正帮助我 ,因为我无法强制ComboBox调用 。
我要具有以下要求:
(HowNice)myComboBox.selectedItem
NotNice
Not Nice At All
显然,我可以为我创建的每个枚举实现一个新类,并覆盖它的ToString(),但是每个枚举都需要大量工作,我宁愿避免这种情况。
ToString()
有任何想法吗?
哎呀,我什至会拥抱一个赏金:-)
您可以编写一个TypeConverter来读取指定的属性,以在您的资源中查找它们。因此,您将获得对显示名称的多语言支持,而无需太多麻烦。
查看TypeConverter的ConvertFrom / ConvertTo方法,并使用反射读取枚举 字段 上的属性。