原始帖子
http://www.cnblogs.com/yahle/archive/2010/08/25/1807946.html
这个帖子里实现了通用类,但是实现方法里加载的都是枚举的名字,
http://wenwen.soso.com/z/q168310960.htm
这个帖子实现了combox里选择值是数字,显示是名字,但是没有通用类。
呵呵,我就是总结了下,
public class BindComboxEnumType<T> { public string Name { get; set; }
public string TypeValue { get; set; }
private static readonly List<BindComboxEnumType<T>> bindTypes;
static BindComboxEnumType() { bindTypes = new List<BindComboxEnumType<T>>();
Type t = typeof(T);
foreach (FieldInfo field in t.GetFields()) { if (field.IsSpecialName == false) { BindComboxEnumType<T> bind = new BindComboxEnumType<T>(); bind.Name = field.Name; bind.TypeValue = field.GetRawConstantValue().ToString(); bindTypes.Add(bind); } } }
public static List<BindComboxEnumType<T>> BindTypes { get { return bindTypes; } } }
调用
ComboBox cb = new ComboBox();
cb.DataSource = BindComboxEnumType<MethodTypeEnum>.BindTypes;
cb.DisplayMember = "Name";
cb.ValueMember = "TypeValue";
return cb;