Comment charger une Listbox WinForms à la main avec DisplayMember et ValueMember ?

Le
Gilbert Tordeur
Bonjour,

Je voudrais charger par code une ListBox avec des couples clé/valeur. En
WebForm, j'écrirais :

Listbox.Items.Add(New ListItem("NomClient1",CStr(1)))

Mais en WinForms ?

Merci de votre aide,
Gilbert
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jérémy Jeanson
Le #18110901
Bonjour Gilbert,

Voici un exemple simple avec un dictionnaire

Dim liste As New Dictionary(Of Int32, String)

liste.Add(1, "Un")
liste.Add(2, "Deux")
liste.Add(3, "Trois")

Me.ListBox1.DisplayMember = "value"
Me.ListBox1.ValueMember = "key"
Me.ListBox1.DataSource = liste.ToList()

Ensuite tu peux utiliser ListBox1.SelectedValue pour récupérer la valeur
sélectionnée.
--
Jérémy JEANSON
MCP
http://www.jjeanson.fr
Gilbert Tordeur
Le #18110971
Merci Jérémy.

En fait j'ai cherché un moment mais je n'ai jamais vu l'assignation à
"value" et "key". Par ailleurs j'assignais DataSource directement au
dictionnaire, sans méthode ToList. Où as-tu trouvé ces informations (si tu
t'en souviens...)

Gilbert

"Jérémy Jeanson"
Bonjour Gilbert,

Voici un exemple simple avec un dictionnaire

Dim liste As New Dictionary(Of Int32, String)

liste.Add(1, "Un")
liste.Add(2, "Deux")
liste.Add(3, "Trois")

Me.ListBox1.DisplayMember = "value"
Me.ListBox1.ValueMember = "key"
Me.ListBox1.DataSource = liste.ToList()

Ensuite tu peux utiliser ListBox1.SelectedValue pour récupérer la valeur
sélectionnée.
--
Jérémy JEANSON
MCP
http://www.jjeanson.fr


Jérémy Jeanson
Le #18111141
Le ToList, c'est à force de faire du Linq, à la fin on prend l'habitude
de ces méthodes d'extension.

Pour comprendre le pourquoi et comment des strings "key" et "value",
c'est très simple : le ListBox prend sous forme de String les nom des
propriétés de l'objet utilisé comme donnée. Le Dictonary comporte une
liste d'objets disposant de propretés "key" et "value".
Tu peux donc faire la même chose avec tout type d'objet, il suffit de
prendre le nom des propriétés que tu veux associer à ton contrôle.
--
Jérémy JEANSON
MCP
http://www.jjeanson.fr
Publicité
Poster une réponse
Anonyme