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).