首页 > 学院 > 开发设计 > 正文

C# 枚举绑定到ComboBox

2019-11-17 02:47:32
字体:
来源:转载
供稿:网友

View Post

C# 枚举绑定到ComboBox

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

方法一:

绑定

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

方法二:

[csharp]view plaincopy
  1. foreach(varvintypeof(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. publicstaticclassEnumManager<TEnum>
  2. {
  3. PRivatestaticDataTableGetDataTable()
  4. {
  5. TypeenumType=typeof(TEnum);//获取类型对象
  6. FieldInfo[]enumFields=enumType.GetFields();//获取字段信息对象集合
  7. DataTabletable=newDataTable();
  8. table.Columns.Add("Name",Type.GetType("System.String"));
  9. table.Columns.Add("Value",Type.GetType("System.Int32"));
  10. //遍历集合
  11. foreach(FieldInfofieldinenumFields)
  12. {
  13. if(!field.IsSpecialName)
  14. {
  15. DataRowrow=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. returntable;
  23. }
  24. publicstaticvoidSetListControl(ListControllist)
  25. {
  26. list.DataSource=GetDataTable();
  27. list.DataTextField="Name";
  28. list.DataValueField="Value";
  29. list.DataBind();
  30. }
  31. }
  32. publicenumBookingStatus{
  33. 未提交=1,
  34. 已提交,
  35. 已取消,
  36. 已完成=6
  37. }
  38. EnumManager<BookingStauts>.SetListControl(ddlBookingStatus);
  39. EnumManager<TicketStatus>.SetListControl(rblTicketStatus);

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表