如何检索列表框中所选项目的选定值?

2023-12-14

我正在 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(使用前将#替换为@)

如何检索列表框中所选项目的选定值? 的相关文章

随机推荐