我想操纵ListView中的所有条目,最好是并行操作。
Parallel.Foreach<ListViewItem>(auftraegeView.Items, line =>
{
line.Font = new Font(line.Font.FontFamily, someInt);
});
但拒绝工作,因为
无法从ListViewItemCollection转换为IEnumerable
ListViewItemCollection不提供ToList()
之类的方法
我做了一个笑 - 笑 - 尝试我做了一个演员
(IEnumerable<ListViewItem>)auftraegeView.Items
它没有抛出编译器错误,但在运行时导致了InvalidCasTException。
注意:
尖括号是故意反转的,因此它们不会像HTML那样被吃掉。
问题:
有没有办法将ListView.Items
/ ListViewItemCollection
转换为实现IEnumerable-Interface的东西,因此可以使用Parallel.ForEach
?
答案 0 :(得分:1)
试试这个:
Parallel.Foreach(auftraegeView.Items.Cast<ListViewItem>(), line =>
{
line.Font = new Font(line.Font.FontFamily, someInt);
});
答案 1 :(得分:1)
您的问题可能已得到解答,但也许您应该考虑另一种设置FontFamily线条的方法。它应该是UI的东西。尝试以样式声明它,或者如果你想动态更改字体,请使用某种触发器。