首页 > 代码库 > C# 枚举绑定到ComboBox

C# 枚举绑定到ComboBox

来自:http://blog.csdn.net/crazy_frog/article/details/7705442

方法一:

绑定

 

[csharp] view plaincopy
 
  1. enum TestEnum {zero=0,one=1,two=2}         
  2. ComboBox cbo = new ComboBox();   
  3. cbo.DataSource = System.Enum.GetNames(typeof(TestEnum));  
  4. TestEnum  test = TestEnum .one;  
  5. cbo.SelectedIndex = this.cbo.FindString(test.ToString());  
  6. 取值  
  7. TestEnum testenum = (TestEnum)Enum.Parse(typeof(TestEnum) ,cbo.SelectedItem.ToString() ,false)  



 

方法二:

 

[csharp] view plaincopy
 
  1. foreach (var v in typeof(AA).GetFields())  
  2. {  
  3.      if (v.FieldType.IsEnum == true)  
  4.      {  
  5.           this.comboBox1.Items.Add(v.Name);  
  6.       }  
  7. }  
  8. this.comboBox1.SelectedIndex = 1;  



 

方法三:

 

反射,枚举,绑定下拉框

 

[csharp] view plaincopy
 
  1. public static class EnumManager<TEnum>  
  2. {  
  3.     private static DataTable GetDataTable()  
  4.     {  
  5.        Type enumType = typeof(TEnum); // 获取类型对象  
  6.        FieldInfo[] enumFields = enumType.GetFields();    //获取字段信息对象集合  
  7.        DataTable table = new DataTable();  
  8.        table.Columns.Add("Name", Type.GetType("System.String"));  
  9.        table.Columns.Add("Value", Type.GetType("System.Int32"));  
  10.        //遍历集合  
  11.        foreach (FieldInfo field in enumFields)  
  12.        {  
  13.            if (!field.IsSpecialName)  
  14.            {  
  15.                DataRow row = table.NewRow();  
  16.               row[0] = field.Name;   // 获取字段文本值  
  17.               row[1] = Convert.ToInt32(field.GetRawConstantValue());        // 获取int数值  
  18.               //row[1] = (int)Enum.Parse(enumType, field.Name); 也可以这样  
  19.               table.Rows.Add(row);  
  20.            }  
  21.        }  
  22.        return table;  
  23.     }  
  24.     public static void SetListControl(ListControl list)  
  25.     {  
  26.        list.DataSource = GetDataTable();  
  27.        list.DataTextField = "Name";  
  28.        list.DataValueField = "Value";  
  29.        list.DataBind();  
  30.     }  
  31. }  
  32.   
  33. public enum BookingStatus {  
  34.     未提交 = 1,  
  35.     已提交,  
  36.     已取消,  
  37.     已完成 = 6  
  38. }  
  39. EnumManager<BookingStauts>.SetListControl(ddlBookingStatus);   
  40. EnumManager<TicketStatus>.SetListControl(rblTicketStatus);  

C# 枚举绑定到ComboBox