欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-06-29 08:46:24
场景 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;
            }
        }