我有一个 WPF ListView
,里面有很多项目。当我选择其中的几个时,我希望能够通过一个按钮将它们删除。我遇到的问题是我可以从 ListView
中删除一个项目,但是当我第二次迭代时,我得到一个:
集合已修改;枚举操作可能不会执行。
错误是因为最后一次删除修改了 ListView
的 ItemSource
。做这个的最好方式是什么?我尝试制作所选项目的副本,但我不知道要使用哪种类型。
最佳答案
将所选项目的集合保存在不会更改的局部变量中,然后您可以毫无问题地对其进行迭代。
例如
var selected = lv.SelectedItems.Cast<Object>().ToArray();
foreach (var item in selected) lv.Items.Remove(item); // or whereever you need to remove them...
( Cast<T>
和 ToArray
是 extension methods )
关于wpf - 如何从 WPF ListView 中删除多个选定项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8928503/