C# 枚举如何转换成list与下拉列表绑定

时间:2024-10-14 00:50:20

1、创建一个枚举,当然定义内容就自由发挥了。 public enum CaseSources { 行政检查 = 1, 举报投诉 = 2, 事故调查 = 3, 上级交办 = 4, 同级交办 = 5, 下级报请 = 6, 双随机检查 = 7, 职业卫生检查 = 8, 隐患排查 = 9, 行政强制 = 10, }

2、创建一个类,操作枚举using System;using System.Collections;using System.Col造婷用痃lections.Generic;using System.Linq;using System.Text;namespace Common{ public static class EnumHelper { #region 枚举类型的相关操作 /// <summary> /// 根据枚举值获取枚举名称 /// </summary> /// <param name="enumtype">枚举类型参数</param> /// <param name="enumValue">枚举值</param> /// <returns>枚举名称</returns> public static string BaseGetEnumName(Type enumtype, int enumValue) { string enumName = "--"; try { enumName = Enum.GetName(enumtype, enumValue); if (enumName == null || enumName == "") { enumName = "--"; } } catch (Exception) { } return enumName; } /// <summary> /// 将枚举转换成ArrayList /// </summary> /// <param name="enumType">枚举类型</param> /// <param name="defaultValue">默认值第一行</param> /// <returns></returns> public static IList EnumToList(Type enumType, string defaultValue) { ArrayList list = new ArrayList(); ListItem listitem = null; if (!string.IsNullOrEmpty(defaultValue)) { listitem = new ListItem(); listitem.Id = defaultValue; listitem.Name = ""; list.Add(listitem); } foreach (int i in Enum.GetValues(enumType)) { listitem = new ListItem(); listitem.Id =i.ToString(); listitem.Name = Enum.GetName(enumType, i); list.Add(listitem); } return list; } #endregion }}

3、创建一个窗体,在里面拖放一个下拉列表。

4、再创建一个公共类,绑定下拉列表内容。using System;using System.Co盟敢势袂llections;using System.Collections.Generic;using System.Data;using System.Text;using System.Windows.Forms;namespace Common{ /// <summary> /// DropdownList下拉列表控件数据源绑定 /// </summary> public class DropdownListBinder { /// <summary> /// 绑定DataTable中的数据到ComboBox中 /// </summary> /// <param name="ddl">下拉列表控件</param> /// <param name="dt">要绑定的DataTable数据</param> /// <param name="strDisplayField">显示字段</param> /// <param name="strValueFiled">值字段</param> public static void BindComboBox(ComboBox ddl, DataTable dt, string strDisplayField, string strValueFiled) { ddl.Items.Clear(); DataRow dr = dt.NewRow(); dr[strDisplayField] = "-请选择-"; dr[strValueFiled] = "0"; dt.Rows.InsertAt(dr, 0); ddl.DataSource = dt; ddl.DisplayMember = strDisplayField; ddl.ValueMember = strValueFiled; } /// <summary> /// 绑定DataTable中的数据到ComboBox中 /// </summary> /// <param name="ddl">下拉列表控件</param> /// <param name="dt">要绑定的DataTable数据</param> /// <param name="strDisplayField">显示字段</param> /// <param name="strValueFiled">值字段</param> public static void BindComboBoxs(ComboBox ddl, DataTable dt, string strDisplayField, string strValueFiled) { ddl.Items.Clear(); DataRow dr = dt.NewRow(); ddl.DataSource = dt; ddl.DisplayMember = strDisplayField; ddl.ValueMember = strValueFiled; } public static void BindComboBox(ComboBox ddl, List<ListItem> list) { ddl.Items.Clear(); ListItem item = new ListItem(); item.Name = "-请选择-"; list.Insert(0, item); ddl.DataSource = list; ddl.ValueMember = "Id"; ddl.DisplayMember = "Name"; } public static void BindComboBox(ComboBox ddl, IList list) { ddl.Items.Clear(); ListItem item = new ListItem(); item.Name = "-请选择-"; list.Insert(0, item); ddl.DataSource = list; ddl.ValueMember = "Id"; ddl.DisplayMember = "Name"; } public static void BindComboBoxs(ComboBox ddl, IList list) { ddl.Items.Clear(); ddl.DataSource = list; ddl.ValueMember = "Id"; ddl.DisplayMember = "Name"; } }}

5、好了,最后果的一步是给前面的东西结合在一起。就两行代码。下拉列表绑定var list = EnumHelper.EnumToList(typeof(CaseSources), ""); DropdownListBinder.BindComboBox(cboCaseSource, list);

6、最后保存运行,就可以看到下拉列表有内容了。

© 手抄报圈