我有两个具有相同DisplayMember
但是不同的ValueMember
的项目,想要通过编程方式选择其中一个项目,我该怎么做?
项目:
123 -> Peter Pan
234 -> John Doe
345 -> Peter Pan
我无法通过以下方式选择最后一个“Peter Pan”:
Listbox1.FindStringExact("Peter Pan");
因为这只返回第一个出现的“Peter Pan”。 以下也不起作用,因为它只设置了选定的项目,但不在列表中显示:
Listbox1.SelectedItem = dataTable.Rows.Find(345);
谁能帮我解决这个问题?
我自己找到了一些更多的信息,列表是有序的,因此当我更新DataTable
(用于填充列表)时,列表会重新排序,并似乎选择了替换编辑项的位置。
Listbox1.FindStringExact
仅在DisplayMember
不同时起作用。
SelectedIndex
可以实现你所说的功能,而SelectedValue
则是根据其ValueMember
属性查找项目。你试过了吗? - Frédéric HamidiselectedRow = dataTable.Rows.Find(Listbox1.SelectedValue);
来获取所选行。 - Frédéric Hamidi