9
votes

Comment sélectionner tous les articles ListView?

Comment sélectionner tous les éléments de listeView?


2 commentaires

Il existe de nombreuses technologies et de nombreux types de liste de liste dans le C # World: ASP.NET, WinForms, Silverlight, WPF. Une autre information et / ou un certain code aideraient.


Étant donné que la plupart des réponses sont pour Winforms, cela ne ferait probablement pas de mal à ajouter cette balise.


4 Réponses :


20
votes
foreach (ListViewItem item in myListView.Items)
{
    item.Selected = true;
}

5 commentaires

Et si vous avez des milliers d'articles? Existe-t-il une façon de faire cette approche plus rapidement?


Appeler lvm_steditemstate passant -1 comme l'index est le manière à faible niveau de définir tous les articles.


@Stuartd Il serait utile de poster votre propre réponse avec C # code pour le faire plutôt que de poster un commentaire vague.


@stuartd je n'ai pas d'intention moyenne. Je dis que votre commentaire pourrait être une bonne réponse et devrait rester seul. Le lien que vous avez fourni a des informations sur C ++ afin qu'il soit utile de donner un exemple de la manière dont vous utiliseriez cela dans le code C #.


D'accord désolé. Je n'ai pas ajouté à la question parce que je n'ai jamais eu à l'utiliser. Il y a un exemple C # à Stackoverflow.com/a/37146677/43846 bien que



8
votes

Il suffit de transmettre votre liste de liste et de contrôle à la fonction.

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


2 commentaires

Cela ne fonctionne pas lorsque la liste de liste est en mode virtuel. Comment puis-je atteindre cet accès en mode virtuel?


WIE a notre propre extension, mais je préfère votre solution LINQ. C'est bien lisible.



1
votes

pour UWP C # Voici comment je l'ai fait.

J'ai une liste de liste appelée, membres t. Pour sélectionner tous les membres, j'ai utilisé la méthode intégrée SellecTall () à partir de la classe ListView.

Le code suivant a fonctionné pour moi:

membresList.sellecTall ();


0 commentaires

1
votes

Il y a déjà une réponse acceptée pour cela, mais j'utilise quelque chose de similaire à celui-ci:

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


0 commentaires