簡體   English   中英

如何通過 ValueMember 選擇 ListBox 項

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM