WinForm下的ComboBox默认是以多行文本来设定显示列表的, 这通常不符合大家日常的应用,
因为大家日常应用通常是键/值对的形式去绑定它的.
那么用键值对的形式如何做?
因为Combox的每一个项的值是一个object, 实际上就是一个键/值对.我用的是下面这个类的实例作为它的一个项:
/// <summary> /// ComboBox的项 /// </summary> class ListItem : System.Object { private string _Value = string .Empty; private string _Text = string .Empty; /// <summary> /// 值 /// </summary> public string Value { get { return this ._Value; } set { this._Value=value; } } /// <summary> /// 显示的文本 /// </summary> public string Text { get { return this ._Text; }set { this._Text=value; } } public ListItem(string value, string text) { this._Value = value; this._Text = text; } public override string ToString() { return this._Text; } }
通过这个类就可以定义ComboBox的值了, 首先我们定义一个ListItem的清单作为ComboBox的数据源:
List < ListItem > items = new List < ListItem > (); items.Add( new ListItem( " 0 " , " Item_0_Text " )); items.Add( new ListItem( " 1 " , " Item_1_Text " )); items.Add( new ListItem( " 2 " , " Item_2_Text " )); items.Add( new ListItem( " 3 " , " Item_3_Text " )); items.Add( new ListItem( " 4 " , " Item_4_Text " )); items.Add( new ListItem( " 5 " , " Item_5_Text " ));然后进行相应的设置:
// 将数据源的属性与ComboBox的属性对应 drpTest.DisplayMember = " Text " ; // 显示 drpTest.ValueMember = " Value " ; // 值然后进就可以进行绑定了:
drpTest.DataSource = items; // 绑定数据绑定数据之后, 就可以对其进行默认选择项的设置, 取值等操作:
drpTest.SelectedValue = "4"; //设定选择项 //取得当前选择的项 ListItem selectedItem = (ListItem)drpTest.SelectedItem; string value = selectedItem.Value; //值 string text = selectedItem.Text; //显示的文字