现在的位置: 首页 > 综合 > 正文

枚举的显示和绑定

2012年03月18日 ⁄ 综合 ⁄ 共 6520字 ⁄ 字号 评论关闭

1.定义一个存储枚举的显示名称的定制特性:

class EnumShowNameAttribute : Attribute

 

2.为每个枚举的成员添加此定制特性。如:

Code

 

3.写显示枚举名称、绑定控件的扩展方法。
显示枚举名称方法(ToShowName())的思路本来很简单:根据枚举值获取其EnumShowNameAttribute定制特性的ShowName属性值。但我这里的代码并不少,主要用来处理以下几点:
1.缓存。由于用反射的方式获取值性能不好。于是这里用了一个Dictionary<string,string>来缓存枚举值对应的ShowName,Key是[枚举类的FullName].[枚举值的ToString],Value是ShowName值。那么只是第一次访问的时候需要反射,以后都从缓存里取就行了。
2.FlagsAttribute标记的枚举。此标志表示这个枚举按位排列。那么不缓存它,且需要拿输入值与枚举的成员一个一个比较。
另:绑定的时候应尊重控件的AppendDataBoundItems属性,给使用时更多选择。

Code

抱歉!评论已关闭.