我正在 WinForms 应用程序中填充列表框,如下所示:
listBoxUsers.DataSource = ctx.Users.ToList();
listBoxUsers.DisplayMember = "Name";
listBoxUsers.ValueMember = "Id";
当我设置时如何检索选定的 IDSelectionMode
to MultiSimple
我想做一个foreach
循环它们,如下所示:
foreach(var itemId in listBoxUsers.SelectedValues)//unfortunately not exist
{
int id = int.Parse(itemId);
// . . .
}
由于您知道项目的类型,因此可以使用以下代码:
var selectedValues = listBox1.SelectedItems.Cast<User>().Select(x=>x.Id).ToList();
边注: The ListBox
控制缺乏GetItemValue方法。一种应该像这样工作的方法GetItemText
,但是为了获取值。在里面领英帖子我分享了一个扩展方法来获取项目的值。使用该扩展方法,您可以获得独立于项目类型的选定值:
var selectedValues = listBox1.SelectedItems.Cast<object>()
.Select(x => listBox1.GetItemValue(x)).ToList();
如果由于某种原因您有兴趣获得所选值的文本表示形式:
var txt = string.Join(",", selectedValues);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)