2009-05-17 8 views
1

Je suis .net débutant en commençant un projet pour le plaisir. J'utilise une zone de liste remplie de certains noms de villes afin que l'utilisateur puisse en choisir un. Chaque classe de ville a un nom et un UID. Comment savoir sur quel utilisateur de la ville a cliqué? De toute évidence, je peux obtenir le texte de l'élément sélectionné, parcourir la liste des villes et en trouver un par nom, mais cela semble stupide.Suivi d'un élément dans la zone de liste

Existe-t-il un type de chose MFC SetItemDataPtr ou la façon la plus courante de le faire?

+0

WinForms, WebForms ou WPF? –

+0

WinForms 15chars – TheBlack

Répondre

3

En supposant que vous faites référence à un WinForms ListBox, cela peut se faire de la manière suivante.

Au lieu de fixer la Items du ListBox à un tableau/collection de chaînes (comme je suppose que vous faites actuellement), vous pouvez plutôt le mettre à une collection d'un type défini par l'utilisateur (City dans votre cas), puis utilisez la propriété DisplayMember (définie sur Name ou quelle que soit la propriété de votre classe City que vous souhaitez afficher), afin que chaque élément du ListBox puisse être accessible en tant qu'objet City défini par l'utilisateur, alors qu'il est toujours affiché par sa propriété Name.

+0

C'est exactement ce que je cherchais. Merci! – TheBlack

0

vous pouvez obtenir l'élément sélectionné par l'utilisateur par le code suivant:

list1.SelectedItem; 

//text -> list1.SelectedItem.Text 
//value-> list1.SelectedItem.Value 
0

Vous pouvez alimenter le ListBox avec un type défini d'un élément, puisqu'il accepte un Object, de préférence en implémentant une méthode ToString(). Il peut s'agir d'un objet avec des propriétés ID et Name, auquel cas il est possible d'accéder à la propriété SelectedItem de ListBox.

1

Je voudrais utiliser un ListView (en mode détails) au lieu d'un ListBox. Vous pouvez ensuite utiliser la propriété Tag de ListViewItem qui est l'équivalent de SetItemDataPtr de MFC.

+0

Je cherchais juste ceci :) Merci! – TheBlack

Questions connexes