Rechercher d'un ListViweItem

Signaler
Messages postés
24
Date d'inscription
jeudi 1 juin 2006
Statut
Membre
Dernière intervention
2 octobre 2006
-
Messages postés
24
Date d'inscription
jeudi 1 juin 2006
Statut
Membre
Dernière intervention
2 octobre 2006
-
Salut !
J'ai un listview avec plusieur colonne. J'aimerais effaceer les doublons da ma liste ou alors carrément empécher l'entrée d'un Item s'il est déjà dans la listView.
(Je débute et j'ai déjà beaucoup cherché et je n'ai rien trouvé)

4 réponses

Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
51
Hello,
Quelle genre de donnée tu mets dans ton ListView?
Si c'est une collection, tu peux éventuellement faire le tris AVANT de les afficher dans le ListView (tout dépend si c'est la collection ou l'affichage qui n'ose pas contenir de doublon).
Si c'est la collection, tu peux soit vérifier lors de l'ajout que l'élément n'existe pas encore, soit utiliser un Dictionary qui lève une exception si tu essayes d'insérer deux fois le même object (deux fois la même key en fait).

Sinon, t'es obligé d'itérer dans ton ListView, de récupérer chaque valeur, et de les comparer... C'est sûrement la bonne solution.

<hr size= "2" /> VC# forever
=13319
Messages postés
24
Date d'inscription
jeudi 1 juin 2006
Statut
Membre
Dernière intervention
2 octobre 2006
5
Salut !

Je te décris ce que je fais (listFilesAdd est un string[]) :

                foreach (string rowFile in listFilesAdd)
                {
                        FileInfo mon_fichier = new FileInfo(rowFile);

                        string extension = mon_fichier.Extension.ToString();

                        int _taille = (int)mon_fichier.Length / 1024;

                        string[] a = { extension.ToUpper().Substring(1),
                                       _taille.ToString() + " Ko"};

                        // C'est ici que je voudrais verifier la presence de l'items que j'ajoute
                        listView1.Items.Add(rowFile).SubItems.AddRange(a);

                }

Je ne sais toujours pas comment m'y pendre !

Merci !!
Messages postés
28
Date d'inscription
mardi 7 mars 2006
Statut
Membre
Dernière intervention
22 janvier 2007

tu peux utiliser la methode listView.Items.Contains(Object o) qui renvoit true si l'objet o est deja dans la collection Items.ListView, et dans ce cas la tu n'ajoutes rien
Messages postés
24
Date d'inscription
jeudi 1 juin 2006
Statut
Membre
Dernière intervention
2 octobre 2006
5
merci de ton aide!!!!