[英]How to get the ValueMember of an item in a Listbox for a given index number?
[英]How to select ListBox item by ValueMember
我有兩個具有相同DisplayMember
和不同ValueMember
的項目,並且想以編程方式選擇這兩個項目之一,我該怎么做?
項目:
123 -> Peter Pan
234 -> John Doe
345 -> Peter Pan
我不能通過做選擇最后一個“彼得潘”
Listbox1.FindStringExact("Peter Pan");
因為這只會返回第一次出現的“Peter Pan”。 以下也不起作用,因為它只設置所選項目,但不在列表中顯示:
Listbox1.SelectedItem = dataTable.Rows.Find(345);
誰能幫我解決這個問題?
我自己找到了更多信息,列表已排序,因此當我更新DataTable
(用於填充列表)時,列表被重新使用,它似乎選擇了代替編輯項目的項目。
Listbox1.FindStringExact
僅在DisplayMember
不同時才起作用。
您可以使用列表控件的SelectedValue屬性:
Listbox1.SelectedValue = 345;
您必須通過 ListBox 控件的 DataSource 屬性分配數據,而不是通過 Items.Add。 之后,您可以使用 ValueMember 來選擇項目:
listBox1.DataSource = GetPeople();
listBox1.DisplayMember = "Name";
listBox1.ValueMember = "Id";
// Now you can use
listbox1.SelectedValue = 345;
更新:Items 是 ListBox 類的成員,但 SelectedValue 是一個 ListControl 屬性,它只能使用 DataSource。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.