2010-08-04 4 views
2

Как выбрать все элементы списка?Как выбрать все элементы списка?

+0

В мире C# существует множество технологий и множество типов списков: asp.net, winforms, silverlight, wpf. Дополнительная информация и/или некоторый код помогут. –

ответ

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

Что делать, если у вас есть тысячи предметов? Есть ли способ сделать этот подход быстрее? – Alex

+0

@Alex см. Http://stackoverflow.com/a/1118396/43846 – stuartd

7

Просто передайте свой список и проверьте состояние функции.

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

Пожалуйста, просто не используйте .ForEach() ... – Yaurthek

+0

Это не работает, когда listview находится в виртуальном режиме. Как я могу достичь этого, используя виртуальный режим? – brighty

+0

У нас есть собственное собственное расширение, но я предпочитаю ваше решение Linq. Это хорошо читаемо. – TurmDrummer

0

для UWP C# это как я это сделал.

У меня есть Listview called, MembersLis t. для выбора всех членов я использовал встроенный метод SellectAll() из класса listview.

Следующий код работает для меня:

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 не обновляется после выбора каждого элемента.