在ASP.NET中ComBoBox可以绑定显示值和实际值,但是在Winform中却是没有的(通过DataSource绑定数据源的时候是可以的,但是有null值和空值的限制)
(所有代码均从实际项目中截取)
新建一个类,用于存放显示值和实际值:
[Serializable] public class ComboxItem { private string _Name = ""; private object _Value = null; public ComboxItem() { } public ComboxItem(string name, object value) { _Name = name; _Value = value; } public string Name { get { return _Name; } set { _Name = value; } } public object Value { get { return _Value; } set { _Value = value; } } }
数据绑定代码:
ArrayList al = new ArrayList(); al.Add(new ComboxItem("不排序", SortType.NoSort)); al.Add(new ComboxItem("升序", SortType.Asc)); al.Add(new ComboxItem("降序", SortType.Desc)); cboMajorSort.DataSource = al; cboMajorSort.DisplayMember = "Name"; cboMajorSort.ValueMember = "Value"; cboMajorSort.SelectedIndex = 0;
初始化时加载:
if (groupSource.MajorSort!= null) cboMajorSort.SelectedValue = groupSource.MajorSort;
确认时,存放:
groupSource.MajorSort = (SortType)cboMajorSort.SelectedValue;