如何使用枚举值的自定义字符串格式设置枚举绑定组合框?

在Enum ToString中,描述了一种使用自定义属性的方法,DescriptionAttribute如下所示:

Enum HowNice {

[Description("Really Nice")]

ReallyNice,

[Description("Kinda Nice")]

SortOfNice,

[Description("Not Nice At All")]

NotNice

}

然后,您GetDescription使用如下语法调用function :

GetDescription<HowNice>(NotNice); // Returns "Not Nice At All"

但是, ,这并没有真正帮助我

我要具有以下要求:

  • 读取(HowNice)myComboBox.selectedItem将返回所选值作为枚举值。
  • 用户应该看到用户友好的显示字符串,而不仅仅是枚举值的名称。因此NotNice,用户不会看到“ ”,而是会看到“ Not Nice At All”。
  • 希望该解决方案将需要对现有枚举进行最少的代码更改。

显然,我可以为我创建的每个枚举实现一个新类,并覆盖它的ToString(),但是每个枚举都需要大量工作,我宁愿避免这种情况。

有任何想法吗?

哎呀,我什至会拥抱一个赏金:-)

回答:

您可以编写一个TypeConverter来读取指定的属性,以在您的资源中查找它们。因此,您将获得对显示名称的多语言支持,而无需太多麻烦。

查看TypeConverter的ConvertFrom / ConvertTo方法,并使用反射读取枚举 字段 上的属性。

以上是 如何使用枚举值的自定义字符串格式设置枚举绑定组合框? 的全部内容, 来源链接: utcz.com/qa/405606.html

回到顶部