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=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;
            }
        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM