我无法使用C#从WinForms中获取ComboBox
的值。
我有ComboBox
填充了值列表,我设置了ValueMember
和DisplayMember
。
现在,我必须找到所选ComboBox
项的值,然后在UI中选择匹配的项目。
这就是我的意思: -
我像这样加载了ComboBox
: -
var list = (from l in db.Loc
orderby l.LName ascending
select l).ToList();
list.Insert(0, new Loc { ID = "-1", Name = "--Select--" });
cmb1.BindingContext = new BindingContext();
cmb1.DataSource = list;
cmb1.DisplayMember = "Name";
cmb1.ValueMember = "ID";
现在,我正在尝试匹配值(ID
)并选择项目。如果我匹配Text
属性
cmb1.Text = data.Name;
但如何匹配价值?
这样的事情: -
cmb1.Value = data.ID;
答案 0 :(得分:3)
如果您只知道项目的ID,也可以使用:
cmb1.SelectedValue = data.ID;
答案 1 :(得分:2)
这应该有效:
cmb1.SelectedValue = data.ID;
答案 2 :(得分:1)
data
必须位于list
绑定到combobox
,然后:
cmb1.SelectedItem = data
或者,如果不是(你从某个地方检索了另一个实例):
cmb1.SelectedValue = data.ID
答案 3 :(得分:1)
为什么要为“ComboBox Value”属性分配“匹配”值? 只要您正确设置了DisplayMember和ValueMember,并且DataSource将两者都作为属性实现,那么值将自动“匹配”,例如,您可以在事件处理程序中读取Value属性以获得此“匹配”值。
答案 4 :(得分:1)
首先:cmb1.Text = text;
将ComboBox
的文本更改为指定值。它不会选择具有与指定值匹配的文本的项目。
使用cmb1.SelectedValue = value;
选择具有固定值的项目。
答案 5 :(得分:0)
您可以使用Combo1.SelectedIndex
属性获取索引。您可以使用Combo1.SelectedItem
或Combo1.Items[Combo1.SelectedIndex]