DevExpress的下拉框控件ComboxBoxEdit怎样绑定键值对选项

场景

DevExpress的下拉框控件ComboBoxEdit控件的使用:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/102855898

在设置ComboBoxEdit的下拉框内容时除了最简单的

comboBox.Properties.Items.Add("下拉选项1");

如果要添加键值对形式的数据该怎样实现。

注:

博客主页:
https://blog.csdn.net/badao_liumang_qizhi

关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

实现

即在Add选项时添加的不是普通的字符串,而是一个对象实体类,里面有

键值对两个属性,在添加选项时是添加一个个的对象。

为了在显示时显示对象的value,需呀重写对象的toString方法,使其

返回value。

新建实体类对象,必须要重写其toString方法。

public class ControlModelItem
{ public ControlModelItem(string key,string value)
{
this.key = key;
this.value = value;
}
private string key; public string Key
{
get { return key; }
set { key = value; }
}
private string value; public string Value
{
get { return this.value; }
set { this.value = value; }
} public override string ToString()
{
return Value;
}
}

然后声明下拉框

DevExpress.XtraEditors.ComboBoxEdit comboBox = new DevExpress.XtraEditors.ComboBoxEdit();

添加下拉框选项

 int i=;

ComboBoxItemCollection coll = comboBox.Properties.Items;
foreach(ControlModelItem controlModelItem in controlModelItems)
{
coll.Add(controlModelItem);
if (controlModelItem.Value == currentCellValue)
comboBox.SelectedIndex = i;
i++;
}

获取选中项的key和value

if (comboBox.SelectedItem != null)
{
string key = (comboBox.SelectedItem as ControlModelItem).Key;
string value = (comboBox.SelectedItem as ControlModelItem).Value;
}

注意:

这里是要将当前Cell的内容赋值给下框默认选中,如果通过SelectText强行赋值的话,则会导致当前选中

的key缺失,在获取key时就会报错。

可以通过上面这种判断value相等时将当前index设置为选中项SelectedIndex。

获取通过SelectedItem和下标的方式指定选中项。

此时就可以在下拉框的选项改变事件中获取当前选中项的key和value

comboBox.SelectedValueChanged += comboBox_SelectedValueChanged;
private void comboBox_SelectedValueChanged(object sender, EventArgs e)
{ DevExpress.XtraEditors.ComboBoxEdit comboBox = sender as ComboBoxEdit;
ControlModelItem controlModelItem = comboBox.SelectedItem as ControlModelItem;
string controlModelItemkey = controlModelItem.Key;
switch (controlModelItemkey)
{
//恒压
case "ConstantVoltage":
break; default:
break;
}
}
上一篇:winfrom中DataGridView绑定数据控件中DataGridViewCheckBoxColumn怎么选中


下一篇:Devexpress使用之:GridControl控件