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

Windows Forms Discussion :

[ListBox] Rafraîchissement des Items


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté Avatar de Gulix
    Inscrit en
    Septembre 2005
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2005
    Messages : 268
    Par défaut [ListBox] Rafraîchissement des Items
    Je développe actuellement une application dans laquelle je modifie des listes d'objets. Pour mon problème, voici à quoi ressemble ma classe Tracklist, que je modifie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    class Tracklist
    {
       public string description;
     
       public override string ToString()
       {
          return description;
       }
    }
    Ca me permet, quand j'ajoute mes objets Tracklist dans ma ListBox, d'avoir leur description. Quand je sélectionne un élément de cette ListBox, j'affiche la description dans une TextBox

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    void Lst_TracklistsSelectedIndexChanged(object sender, System.EventArgs e)
    {
       numTracklist = lst_Tracklists.SelectedIndex;
       // On charge les informations du morceaux dans la fenêtre
       Tracklist tracklist = lst_Tracklists.SelectedItem as Tracklist;
       txt_Description.Text = tracklist.description;
    }
    Quand on clic sur un bouton, j'enregistre cette description

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Tracklist tracklist = lst_Tracklists.Items[lst_Tracklists.SelectedIndex] as Tracklist;
    tracklist.description = txt_Description.Text;
    Ca enregistre bien la description de l'objet, puisqu'en sélectionnant un autre élément de la liste, et en revenant sur le premier, la description est bien mise à jour. Mais l'intitulé dans la ListBox n'est pas mis à jour. Même un Refresh() ne fait rien.

    Si quelqu'un a une idée autre que de recharger totalement la listBox (ça, ça marche, mais ça peut être assez long).
    "L'univers... on croit qu'il est infini mais quand on arrive au bout un gorille géant vous balance des tonneaux."
    Phillip J. Fry

    http://www.gulix.fr/

    BlindShark, Logiciel de Blind Test - Pull N' Bounce - Jeu XNA

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 22
    Par défaut rep
    Salut,

    Si tu remplace ta listBox par une listView, tu dispose alors d'une propriété Text sur les items. Peu être ca peu t'aider à mettre à jour la liste avec un truc comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    listView1.Items[i].Text = txt_Description.Text;
    Ceci dit c'est une idée que je n'ai pas testée...

  3. #3
    Membre expérimenté Avatar de Gulix
    Inscrit en
    Septembre 2005
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2005
    Messages : 268
    Par défaut
    Merci, je vais tester ça et je verrais bien si ça fonctionne !
    "L'univers... on croit qu'il est infini mais quand on arrive au bout un gorille géant vous balance des tonneaux."
    Phillip J. Fry

    http://www.gulix.fr/

    BlindShark, Logiciel de Blind Test - Pull N' Bounce - Jeu XNA

  4. #4
    Membre expérimenté Avatar de Gulix
    Inscrit en
    Septembre 2005
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2005
    Messages : 268
    Par défaut
    Bon, j'ai testé, et d'après ce que j'ai pu voir, le ListView n'accepte pas des objets standards comme items. Il accepte du texte, donc je ne peux pas fournir mon objet TrackList au ListView.

    Merci quand même, je continue à chercher
    "L'univers... on croit qu'il est infini mais quand on arrive au bout un gorille géant vous balance des tonneaux."
    Phillip J. Fry

    http://www.gulix.fr/

    BlindShark, Logiciel de Blind Test - Pull N' Bounce - Jeu XNA

  5. #5
    Membre expérimenté Avatar de Gulix
    Inscrit en
    Septembre 2005
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2005
    Messages : 268
    Par défaut
    Après avoir fouillé différents forums, j'ai pu trouver une solution


    En gros, il existe une fonction de rafraîchissement d'item qui n'est pas accessible depuis le ListBox, mais qu'il est possible d'utiliser dans une classe dérivée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    class MyListBox : ListBox
    {
        public void UpdateItem( int index )
        {
            base.RefreshItem( index );
        }
    }
    Il faut faire attention à l'utilisation, j'ai eu un petit souci avec mon code de l'événement OnSelectedIndexChange(), mais ça fonctionne bien. Je vais donc retravailler un peu cette classe pour m'en resservir dans d'autres projets.
    "L'univers... on croit qu'il est infini mais quand on arrive au bout un gorille géant vous balance des tonneaux."
    Phillip J. Fry

    http://www.gulix.fr/

    BlindShark, Logiciel de Blind Test - Pull N' Bounce - Jeu XNA

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

Discussions similaires

  1. listbox avec des items de couleur différente
    Par ifrit 23 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 08/02/2008, 22h28
  2. Sélectionner des Items dans une ListBox
    Par berpi dans le forum Débuter
    Réponses: 3
    Dernier message: 07/02/2008, 22h56
  3. Réponses: 4
    Dernier message: 06/08/2007, 10h21
  4. Réponses: 3
    Dernier message: 29/08/2006, 12h50
  5. Deplacer des items dans un listbox
    Par chourmo dans le forum Delphi
    Réponses: 2
    Dernier message: 25/07/2006, 13h53

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