IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

La listview n'affiche rien - Mode détail


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    autre
    Inscrit en
    Janvier 2015
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Janvier 2015
    Messages : 212
    Par défaut La listview n'affiche rien - Mode détail
    Bonjour,

    C'est certainement très bête, d'autant que j'ai déjà une listview qui fonctionne bien dans mon appli.
    J'ai copié collé pour en créer une deuxième.
    J'ai changé les noms de colonnes dans les propriétés.
    J'utilise le même squelette de méthode pour la remplir.

    Je charge la listview avec les données d'un dataset.
    J'ai vérifié, en mode pas à pas, les données sont bien présentes.
    La listview se remplit bien (nb d'items augmente, items et subitems présents en mémoire).

    Ben, la deuxième n'affiche rien.
    Même pas les noms des colonnes.

    Merci pour votre aide

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
            private void Charge_lISTE_CONTACTS()
            {
                RepListview.Items.Clear();
     
                foreach (DataRow dr in RepertoireDataSet.Tables["Repertoire"].Rows)
                {
     
                    try
                    {
                        string[] elems = new string[5];
                        ListViewItem itm;
     
                        elems[0] = dr["ContactsCategorie"].ToString(); 
                        elems[1] = dr["Nom"].ToString();
                        elems[2] = dr["Telephone"].ToString();
                        elems[3] = dr["Courriel"].ToString();
                        elems[4] = dr["Newsletter"].ToString();
     
                        itm = new ListViewItem(elems);
                        itm.Tag = dr["CleR"];
     
     
                        RepListview.Items.Add(itm);
     
                    }
                    catch (System.InvalidCastException)
                    { }
     
                }
                connexion.Close(); 
                RepListview.Enabled = true;
            }

  2. #2
    Membre éclairé
    Homme Profil pro
    autre
    Inscrit en
    Janvier 2015
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Janvier 2015
    Messages : 212
    Par défaut
    Ben voilà,
    C'est aussi à cela qu'est utile ce forum.
    Poser sa question permet parfois d'avoir le recul qui nous manque pour trouver la solution.

    Il manquait ces deux évènements dans la deuxième listview :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
            private void RepListview_DrawColumnHeader(object sender, DrawListViewColumnHeaderEventArgs e)
            {
                e.Graphics.FillRectangle(Brushes.LightGray, e.Bounds);
                e.DrawText();
     
            }
     
            private void RepListview_DrawItem(object sender, DrawListViewItemEventArgs e)
            {
                e.DrawDefault = true;
     
            }
    Merci

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    721
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 721
    Par défaut
    J'avoue que je n'ai pas tout suivi.

    Mais quand on alimente un contrôle tel que le Listview cela aurait du sens d'utiliser BeginUpdate au début de la boucle, puis EndUpdate() à la fin pour accélérer la génération dans l'UI.

    Je retirerais aussi le bloc InvalidCastException, ou alors il faut logger les erreurs quelque part. Faire disparaître les exceptions n'est pas une bonne chose.

  4. #4
    Membre éclairé
    Homme Profil pro
    autre
    Inscrit en
    Janvier 2015
    Messages
    212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : autre

    Informations forums :
    Inscription : Janvier 2015
    Messages : 212
    Par défaut
    Citation Envoyé par binarygirl Voir le message
    J'avoue que je n'ai pas tout suivi.

    Mais quand on alimente un contrôle tel que le Listview cela aurait du sens d'utiliser BeginUpdate au début de la boucle, puis EndUpdate() à la fin pour accélérer la génération dans l'UI.

    Je retirerais aussi le bloc InvalidCastException, ou alors il faut logger les erreurs quelque part. Faire disparaître les exceptions n'est pas une bonne chose.
    Oui, en effet, je vais nettoyer le traitement de l'exception. C'est un résidu d'un truc beaucoup plus complexe.
    Je vais voir aussi pour BeginUpdate et EndUpdate.
    Des fois, je ne me suis pas moi-même ! Je récupère d'un code que j'ai écris des années auparavant.
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. ListView n'affichant rien avec un CursorAdapter
    Par Wilane dans le forum Composants graphiques
    Réponses: 1
    Dernier message: 24/12/2014, 15h31
  2. C# - Comboxbox dans cellule Listview en mode détails, possible ?
    Par hellspawn_ludo dans le forum Windows Forms
    Réponses: 2
    Dernier message: 20/09/2011, 14h25
  3. afficher les colonnes de tri autrement qu'en mode détail
    Par stars987 dans le forum Windows 7
    Réponses: 1
    Dernier message: 28/10/2009, 00h21
  4. sélectionner un item dans un listview en mode détail.
    Par grome dans le forum Windows Forms
    Réponses: 7
    Dernier message: 22/08/2007, 12h16
  5. Image dans listview mode détail
    Par metallica14 dans le forum VB.NET
    Réponses: 1
    Dernier message: 26/07/2007, 13h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo