2016-05-15 87 views
0

我對ValueMember有問題。我救了我所有的ListBox中的項目有兩個成員:從SelectedValue列表框中獲取ValueMember?

listBox1.ValueMember = "userId"; 
listBox1.DisplayMember = "userName"; 

現在我創建一個循環來我的OBJ添加到列表中:

foreach (var tempItem in listWithObjs) 
    { 
     MyItem testItem = new MyItem(); 
     testItem.userID = tempitem;//userID and userName are Strings the content is not very important i think 
     testItem.userName = item.Split('\\').Last(); 
     listBox1.Items.Add(testItem); 
    } 

至少,我嘗試當我拿到用戶名雙擊我的清單項目:

private void listBox1_DoubleClick(object sender, EventArgs e) 
    { 
     var selected = listBox1.SelectedValue; //SelectedValue is null 
     label1.Text = Convert.ToString(selected); 
    } 

這裏是問題SelectedValue爲null。

我嘗試使用SelectedItem,但這只是返回「MyItem」,我嘗試從選擇中獲得完整的對象,但該dosent的工作。

如何獲取ValuedMember「UserID」爲所選字符串?

非常感謝您的答案:)

回答

1

問題是由用於填充Items集合的方式造成的。您要添加的項目一個接一個的項目集合,而不是你應該你的ListBox的數據源設置爲listWithObjs變量

listBox1.ValueMember = "userId"; 
listBox1.DisplayMember = "userName"; 
listBox1.DataSource = listWithObjs; 

當然,刪除一個

這是增加了項目之一的環一個常見的錯誤,但是如果你仔細閱讀它是在一個微妙的方式爲ValueMember財產

的字符串表示數據源的單一屬性名解釋的MSDN頁面屬性值或 解析爲最終數據綁定對象的屬性名稱的以句點分隔的屬性名稱的層次結構。

+0

Ty爲我工作了不起! :) –