2010-08-04 182 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控件不會更新。

相關問題