2010-08-04 121 views
2

如何选择所有listview项目?如何选择所有的listview项目?

+0

在C#世界中有许多技术和多种类型的listview:asp.net,winforms,silverlight,wpf。一些更多的信息和/或一些代码会有所帮助。 – 2010-08-04 13:01:52

回答

11
foreach (ListViewItem item in myListView.Items) 
{ 
    item.Selected = true; 
} 
+0

如果您有成千上万的物品,该怎么办?有没有办法让这种方法更快? – Alex 2013-04-24 11:24:37

+0

@Alex请参阅http://stackoverflow.com/a/1118396/43846 – stuartd 2013-04-24 13:01:58

7

只需将您的listview和checkstate传递给函数。

public void CheckAllItems(ListView lvw, bool check) 
{ 
    lvw.Items.OfType<ListViewItem>().ToList().ForEach(item => item.Checked = check); 
} 
+0

请仅使用.ForEach()... – Yaurthek 2014-04-27 09:51:19

+0

当列表视图处于虚拟模式时,这不起作用。我如何使用虚拟模式实现这一点? – brighty 2015-09-23 11:39:23

+0

Wie有我们自己的Each-Extension,但我推荐你的Linq解决方案。它的可读性很好。 – TurmDrummer 2017-03-16 09:35:01

0

对于UWP c#这是我是如何做到的。

我有一个Listview调用,MembersLis t。从列表视图类中选择所有使用内置方法SellectAll()的成员。

以下代码适用于我:

MembersList.SellectAll();

1

已经有这个公认的答案,但我用类似这样的东西:

lv.BeginUpdate(); 
List<ListViewItem> items = (from i in lv.Items).ToList; 
items.ForEach(i => i.Selected == true); 
lv.EndUpdate(); 

它似乎运行得更快,如果有几千项。另外,由于我们使用的是BeginUpdate()EndUpdate(),选择每个项目后ListView控件不会更新。

相关问题