Problème supprimer items listview c# VS

Résolu/Fermé
Teatimerelax Messages postés 146 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 27 décembre 2016 - 10 juin 2008 à 10:46
Teatimerelax Messages postés 146 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 27 décembre 2016 - 10 juin 2008 à 17:45
Bonjour,

Pour info, je développe en c# sous visual studio 2005

Alors j'ai un soucis pour rafraichir l'affichage d'un listview. Selon le cas,
- soit le code n'éfface rien entre deux apports de données, et il cumule toutes les données
- soit le code efface le contenu du listview mais n'affiche pas les derniers éléments chargés, ce que je voudrais !

Pour chaque élément d'une liste dans une classe, JE VEUX que mon LISTVIEW les AFFICHE sur plusieurs lignes et plusieurs colonnes. Quand je change d'objet de la classe qui contient la liste, je veux que le ListView supprime ses items et affiche les nouveaux issus de la liste dans le nouvel objet de la classe . :)

Voici le code par exemple ://début code
int cptItemsRL;
ListViewItem lviRL; // déclaration d'une variable d'item
cptItemsRL = _serviceMainForm.mesDetailsDossier.ListeRL.Count; //initialisation compteur
lvRL.Items.Clear(); // ici le listview dans l'ihm voit ses Items supprimer pour le remettre à zéro
for (int k = 0; k < cptItemsRL; k++)
{
lviRL = new ListViewItem(_serviceMainForm.mesDetailsDossier.ListeRL[k].NomRL);

viRL.SubItems.Add(_serviceMainForm.mesDetailsDossier.ListeRL[k].NomPatRL);
viRL.SubItems.Add(_serviceMainForm.mesDetailsDossier.ListeRL[k].PrenomRL);
viRL.SubItems.Add(_serviceMainForm.mesDetailsDossier.ListeRL[k].CiviliteRL); //
viRL.SubItems.Add(_serviceMainForm.mesDetailsDossier.ListeRL[k].CiviliteRL); // je sais
viRL.SubItems.Add(_serviceMainForm.mesDetailsDossier.ListeRL[k].CiviliteRL); // c pareil
viRL.SubItems.Add(_serviceMainForm.mesDetailsDossier.ListeRL[k].NatureLienRL);

lvRL.Items.Add(lviRL);
// lviRL.SubItems.Clear(); // si j'active ce code rien ne s'affiche jamais, sinon listview empile tous les enregistrements issus d'une classe de couche objet, même
}
//fin code

Evidemment, si je déplace lviRL.SubItems.Clear() sous l'accolade, il met dit que la variable n'est pas assignée


J'ai cru comprendre qu'il fallait bien supprimer les SubItems de la variable Item viRL avec Clear() et supprimer aussi les Items du controle ListView de l'IHM, mais à priori je m'y prends mal.

Pouvez-vous m'aider ?

Merciiiiiiiiiiiiiiiiiiii
A voir également:

2 réponses

Teatimerelax Messages postés 146 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 27 décembre 2016 29
10 juin 2008 à 17:45
Voilà, j'ai La Solution.

Le problème ne venait pas d'une réinitialisation des ListView ou de leurs Itmes ou SubItems, mais de la réinitialisation des Listes des classes des objets.

Donc la solution consista à faire une méthode pour initialiser les listes des classes et à y faire appel aux bons endroits dans le code, par exemple juste avant de solliciter les instances de ces classes. Bon bref.

Pour implémenter la méthode :
private void InitialisationListes()
{
_blabla.mesDetails.ListeTE.Clear();
_blabla.mesDetails.ListeC.Clear();
_blabla.mesDetails.ListeRL.Clear(); // <- - c'est celle-ci qui nous interessait ici
}


Pour faire appel à la méthode :
this.InitialisationListes();

A la prochaine.
2
Teatimerelax Messages postés 146 Date d'inscription lundi 10 janvier 2005 Statut Membre Dernière intervention 27 décembre 2016 29
10 juin 2008 à 14:59
Reee tout le monde.

Alors le problème semble venir d'ailleurs en fait :

Le code pour réinitialiser les ListView est peut-êter correct. :)

Par contre, j'ai isolé le problème, il semble venir du compteur qui s'incrémente tout le temps au niveau du "count", ici précisément :
cptItemsRL = _serviceMainForm.mesDetailsDossier.ListeRL.Count;

Ce serait mon objet qui gonfle gonfle gonfle au fur et à mesure des instanciations.
Rappel : Mon objet c'est une instance de classe avec ses attributs et parmi eux une liste étblie depuis une autre classe.

Comment vider mon objet : avec = null ?
Faut il vider les listes en même temps que l'objet ?

merci pr vos indications à venir
0