我很难在后台工作人员的列表视图中循环遍历所有选定的项目。我做了一些研究,发现了这一点;无法在 ListView 跨线程中获取项目但它似乎不起作用,因为我只想发送到选定的项目,有人可以举例说明我应该做什么吗?这一切都是非常新的和令人困惑的。
我累了的视觉例子;
我很难在后台工作人员的列表视图中循环遍历所有选定的项目。我做了一些研究,发现了这一点;无法在 ListView 跨线程中获取项目但它似乎不起作用,因为我只想发送到选定的项目,有人可以举例说明我应该做什么吗?这一切都是非常新的和令人困惑的。
我累了的视觉例子;
您的函数getListViewItems
需要ListView
作为参数。您正在尝试使用ListViewItemCollection调用它,这就是它失败的原因。
只需将其修改为
foreach(ListViewItem item in getListViewItems(listView2))
定义这样的函数:
public static List<ListViewItem> GetSelectedListViewItems(ListView lv)
{
if (!lv.InvokeRequired)
return lv.SelectedItems.Cast<ListViewItem>().ToList();
else
return (List<ListViewItem>)lv.Invoke(
new Func<ListView, List<ListViewItem>>(GetSelectedListViewItems),
lv);
}
用法:
private void SendMSG_DoWork(object sender, DoWorkEventArgs e)
{
foreach (var item in GetListViewSelectedItems(listView2))
{
// ...
}
}