winforms 组合框编辑中SelectedValue(组合框)的相关字段是什么

11dmarpk  于 2023-01-05  发布在  其他
关注(0)|答案(1)|浏览(166)

ComboboxEdit中与Combobox.SelectedValue相关的字段是什么?
当我从以下选项中选择内容时:

in Devexpress ComboboxEdit .. 
combo.EditValue ="1​"
combo.SelectedItem="1​"
combo.SelectedText​="1"

在正常Winform组合框中,这些都得到相同的值。

cmb.SelectedItem="1"
cmb.SelectedText=""
cmb.SelectedValue=null​

如何在Devexpress ComboxEdit中实现这一点?
例如,我正在:

Dictionary<string,string> dic = new Dictionary<string,string>();
             
dic.Add("Test","5");
dic.Add("Test","6");
dic.Add("Test","7");

foreach(DictionaryEntry dic in dic)
{
 Combobox.Items.add(dic);
 Comboboxedit.Properties.Items.Add(dic);
}

当我设置正常值时:

Combobox WinForm
Combobox.SelectedValue = dic["Test"];

我怎么能为Devexpress ComboboxEdit做同样的事情呢?

vlurs2pr

vlurs2pr1#

如果你需要DevEx控件的行为类似winforms标准组合框,你应该使用LookupEdit控件。
来自ComboBoxEdit文档:

  • ComboBoxEdit结合了单行文本编辑器和下拉窗口的功能。

ComboBoxEdit项可以是任何类型。在下拉窗口和编辑框中,项由其显示文本(由项的ToString方法返回的字符串)表示。**从下拉列表中选择项时,项集合中的相应对象将自动分配给SelectedItem属性。*此属性值与通过EditValue属性提供的编辑值匹配。
因此,在ComboBoxEdit中,您不能拥有display和value成员,它只显示项的字符串表示。

EDIT(将字典绑定到LookupEdit):

LookUpEdit lookupEdit = new LookUpEdit();
Dictionary<string,string>  dic = new Dictionary<string,string>();
dic["1"] = "jedan";
dic["2"] = "dva";
lookupEdit.Properties.ValueMember = "Key";
lookupEdit.Properties.DisplayMember = "Value";
lookupEdit.Properties.DataSource = dic.ToList();

// if you want to hide Key column
LookUpColumnInfo keyColumnInfo = new LookUpColumnInfo("Key");
keyColumnInfo.Visible = false;
lookupEdit.Properties.Columns.Add(keyColumnInfo);
lookupEdit.Properties.Columns.Add(new LookUpColumnInfo("Value"));

// set selected item
lookupEdit.EditValue = "2";

相关问题