簡體   English   中英

使用C#從ListBox中的選定項獲取ValueMember

[英]Getting ValueMember from selected item in a ListBox with C#

我正試圖從帶有C#的ListBox中獲取所有選定的項目ValueMember。

例如:

我有這樣一個列表:

ID | Name and Lastname
----------------------
1  | John Something
2  | Peter Something2
3  | Mary Smith

這個結構是我的ListBox的一部分。 我用這段代碼構建了這個列表框:

private void fill_people_listBox()
{
    this.listBoxPeople.DataSource = db.query("SELECT ....");
    this.listBoxPeople.DisplayMember = "people_name_last";
    this.listBoxPeople.ValueMember = "people_id"; 
}

ListBox已成功填充。 當用戶想要保存更改時,我將遍歷此列表以獲取所有選定的項目,但我不需要該項目,我需要ID。

例:

1 | John Something.

忽略John Something,得1,所以我不需要DisplayMember,只需要ValueMember。

為此,我嘗試了以下幾種方法:

        foreach (ListBox selectedItem in this.listBoxGarantes.SelectedItems)
        {
            selectedItem.ToString(); // just an example, I'm printing this.

        }

        string strItem;

        // insert garantes
        foreach (object selectedItem in this.listBoxGarantes.SelectedItems)
        {
            strItem = selectedItem as String;

            strItem; // just an example, I'm printing this.
        }

3º這是最后一個。

        foreach (ListViewItem element in this.listBoxGarantes.Items)
        {
            if (element.Selected)
            {
                element.SubItems[0].Text; // just an example, I'm printing this.
            }
        }

我嘗試了幾個選項,但我無法成功獲得每個元素的ID。 我不知道還能做什么。

我希望有人能幫助我。

問候。

由於您有多個選擇,因為您通過SelectedItems列表枚舉,SelectedValue屬性對您沒有多大幫助。

嘗試將項目轉換回DataRowView對象:

foreach (var item in listBox1.SelectedItems) {
  MessageBox.Show("ID = " + ((DataRowView)item)["people_id"].ToString());
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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