2011-03-22 2 views
0

J'ai un listBox qui représente visuellement les éléments dans un dictionnaire. Le dictionnaire contient une classe personnalisée appelée Contact.Comment sélectionner un élément dans un dictionnaire, en utilisant une zone de liste

Je souhaite utiliser les chaînes de la zone de liste (qui sont identiques à une référence dictionnaire) pour faire référence au contact contenu dans le dictionnaire. J'ai du mal à faire fonctionner ça, si c'est possible.

Répondre

0

Tant que le texte de listBox est la clé de l'élément dans le dictionnaire, les choses devraient être assez simples. (J'ai peut-être mucked les noms de propriété ici)

var contact = dict[listBox.SelectedItem]; 
+1

... ou juste 'dict [listBox.SelectedItem]' – kolosy

+0

Vous m'avez mis sur la bonne voie, mais j'ai dû ajouter un ToString() pour le faire fonctionner. Contacts [lbxContacts.SelectedItem.ToString()] –

1

La zone de liste peut être databound à la propriété keys du dictionnaire. Vous pouvez ensuite obtenir la valeur sélectionnée de la zone de liste et l'utiliser comme clé du dictionnaire pour obtenir l'objet Contact associé.

0

L'une des possibilités est que vous pouvez lier votre dictionnaire à DataSource avec DisplayMember, puis simplement obtenir des objets entiers Contact.

Questions connexes