DevExpress的下拉框控件ComboxBoxEdit怎样绑定键值对选项
程序员文章站
2023-11-09 21:48:40
场景 DevExpress的下拉框控件ComboBoxEdit控件的使用: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/102855898 在设置ComboBoxEdit的下拉框内容时除了最简单的 comboBox.Proper ......
场景
devexpress的下拉框控件comboboxedit控件的使用:
https://blog.csdn.net/badao_liumang_qizhi/article/details/102855898
在设置comboboxedit的下拉框内容时除了最简单的
combobox.properties.items.add("下拉选项1");
如果要添加键值对形式的数据该怎样实现。
注:
博客主页:
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。
实现
即在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=0; 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; } }