.NET 3.5 列表框选定值 (Winforms)

Jim*_*mbo 2 c# listbox selectedvalue multi-select .net-3.5

我正在努力从启用了多选并已绑定到数据库表的 Winforms 列表框中获取选定的值(请注意值而不是文本),获取名称(作为 DisplayMember)和 ID(作为 ValueMember) - 我需要所选项目的 ID。

列表框控件具有用于SelectedValue获取选定项值之一的属性,但不具有用于获取所有选定项值的属性。

SelectedItems属性返回一个Listbox.SelectedObjectCollection我似乎无法从中提取项目值的值。

请帮忙!谢谢。

Ste*_*nan 5

尝试将object集合中的每个内容转换为所需的type. 例如,如果我的物品属于 类型Customer,我可以这样做......

var selected = listBox1.SelectedItems;

foreach ( var item in selected )
{
    var singleCustomer = (Customer)item;
}
Run Code Online (Sandbox Code Playgroud)

现在您可以从 中获得您想要的任何财产Customer

这只是一个简单的例子,但我相信您可以将这个概念应用于您的问题。

更新(更新问题以指示列表框绑定到表后):

如果你绑定到 a DataTable,你可以尝试这样的事情(同样,微不足道但相关):

var selected = listBox1.SelectedItems;

foreach ( var item in selected )
{
    var itemArray = ( (DataRowView)item ).Row.ItemArray;

    var name = itemArray[0];
    var id = itemArray[1];
}
Run Code Online (Sandbox Code Playgroud)