[英]how to get DisplayMemeber value from listbox by valuemember c#?
[英]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。
为此,我尝试了以下几种方法:
1º
foreach (ListBox selectedItem in this.listBoxGarantes.SelectedItems)
{
selectedItem.ToString(); // just an example, I'm printing this.
}
2º
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.