反射-利用泛型把枚举绑定到listControl
2011-10-09 09:56
387 查看
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Reflection; namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { EnumManager<LeftMenu>.SetListControl(comboBox1); EnumManager<Permission>.SetListControl(listBox1); } public enum LeftMenu { 基础数据管理 = 100, 日程管理 = 101, 听众管理 = 102, 黑名单管理 = 103, 公告管理 =104, 系统公告=105, 消息管理=106, 我的消息=107, 今日日程=108, 短信管理=110, 来电业务管理 = 200, 来电操作 = 201, 信息管理 = 202, 工作流程管理 = 300, 信息审核 = 301, 信息播出 = 302, 我的工作=303, 系统设置管理 = 400, 账号管理 = 401, 角色管理 = 402, 权限管理 = 403, 菜单管理 = 404, 个人信息管理 = 405, 登录日志管理 = 407, 错误日志管理 = 408, 菜单功能配置=409, 数据字典管理 = 500, 路况相关设置 = 501, 新闻相关设置 = 502, 咨询相关设置 = 503, 审核不通过原因 = 504, 加入黑名单原因 = 505, 解除黑名单原因 = 506, 审核相关设置 = 507, 关键字管理 = 508, 前缀设置 = 509, 知识库=600, 知识库查询=601, 知识库管理=602 } public enum Permission { 添加 = 10001, 修改=10002, 删除=10003, 列表查看=10004, 详细查看=10005, 审核=10006, 播出=10007, 加入黑名单=10008, 解除黑名单=10009, 修改资料=10010, 修改密码=10011, 信息处理历史查看=10012, 启用禁用账号=10013, 发布=10014, 预览=10015, 附件上传=10016, 附件下载=10017, 回复 = 10018, 密码重置=10019, 发送短信=10020 } } public static class EnumManager<TEnum> { private static DataTable GetDataTable() { Type enumType=typeof(TEnum); FieldInfo[] enumField=enumType.GetFields(); DataTable dt=new DataTable(); dt.Columns.Add("Name",Type.GetType("System.String")); dt.Columns.Add("Value",Type.GetType("System.Int32")); foreach(FieldInfo field in enumField) { if(!field.IsSpecialName) { DataRow row=dt.NewRow(); row["Name"]=field.Name; row["Value"]=Convert.ToInt32( field.GetRawConstantValue()); //row["Value"]=(int)Enum.Parse(enumType,field.Name); dt.Rows.Add(row); } } return dt; } public static void SetListControl(ListControl list) { list.DataSource=GetDataTable(); list.DisplayMember="Name"; list.ValueMember="Value"; } } }
相关文章推荐
- 反射-利用泛型把枚举绑定到listControl
- C# 利用反射将枚举绑定到下拉框
- C#如何利用反射将枚举绑定到下拉框详解
- C#综合揭秘——利用泛型与反射更新实体(ADO.NET Entity Framework)
- 枚举1_结合反射和Attribute绑定业务状态_便于维护_提高可读性1
- JAVA常用基础知识点[继承,抽象,接口,静态,枚举,反射,泛型,多线程...]
- 利用反射实现泛型的实现
- DataGridView绑定泛型List时,利用BindingList来实现增删查改
- java中利用泛型反射创建数据库
- 利用反射提取enum枚举中的项
- 利用反射,泛型,静态方法快速获取表单值到Model。(Henq)
- 黑马程序员--Java基础加强--13.利用反射操作泛型II【TypeVariable】【GenericArrayType】【WildcardType】【Type及其子接口的来历】【个人总结】
- 利用反射获得类信息,以获得泛型为例
- 反射,枚举,绑定下拉框
- 反射:利用泛型在编译过程中被抹去
- 利用Android反射与泛型机制写一个通用的Adapter类
- winform中利用反射实现泛型数据访问对象基类(2)
- C#利用反射动态绑定事件
- 泛型与反射机制处理ComBox绑定的数据源是List<实体对象>
- 利用反射泛型编写通用的Dao