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

2025-10-10 09:00:41

1、创建一个枚举,当然定义内容就自由发挥了。

  public enum CaseSources        {             行政检查 = 1,            举报投诉 = 2,            事故调查 = 3,            上级交办 = 4,            同级交办 = 5,            下级报请 = 6,            双随机检查 = 7,            职业卫生检查 = 8,            隐患排查 = 9,            行政强制 = 10,        }

2、创建一个类,操作枚举

using System;using System.Collections;using System.Collections.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.Collections;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、最后保存运行,就可以看到下拉列表有内容了。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢