Question

J'ai créé une ArrayList contenant KeyValuePair < string, string > objets. Il y a des ListBox que je souhaiterais lier à cette liste afin de ne pas les remplir par itération, en copiant en même temps toutes les données que j'ai dans la liste ArrayList mentionnée ci-dessus.

Je suis un programmeur Delphi et dans Delphi, j'utiliserais le contrôle ListView, définirais sa propriété OwnerData sur true, puis utiliser l'événement OnData pour faire en sorte qu'un élément donné (avec un index spécifié) affiche tout élément de données d'un élément de tableau. ayant le même index. La méthode OnData me donne l’élément actuellement affiché en tant que paramètre afin que j’aie accès, par exemple, à ses propriétés Index, Caption et SubItems. En me basant sur cet index, je peux faire en sorte que l’élément affiche certaines données d’un élément de tableau ayant le même index. Si ce tableau est modifié, il suffit d'actualiser ListView et / ou de définir sa propriété Count si la longueur du tableau a été modifiée.

Comment atteindre le même objectif en C # en utilisant le contrôle ListBox? J'ai défini la propriété listBox.DataSource sur myArrayList contenant KeyValuePairs. Maintenant, j'aimerais que le listBox affiche les clés des objets KeyValuePairs.

Était-ce utile?

La solution

Cette liste est intégrée aux zones de liste .NET. Vous avez déjà défini la propriété DataSource. Pour afficher uniquement les clés de la liste, définissez:

listBox.DisplayMember = "Key";
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top