2009-05-17 8 views
1

Ich bin .net Neuling ein Projekt zum Spaß zu starten. Ich benutze eine Liste mit einigen Städtenamen, so dass der Benutzer einen auswählen kann. Jede Stadtklasse hat Namen und UID. Woher weiß ich, auf welchen Stadtbenutzer geklickt wurde? Offensichtlich kann ich Text des vorgewählten Einzelteils erhalten, durch Stadtliste laufen und finden einen namentlich aber das scheint dumm.Verfolgen eines Elements in Listbox

Gibt es äquivalent zu MFC SetItemDataPtr Art der Sache oder was ist die häufigste Art, es zu tun?

+0

WinForms, WebForms oder WPF? –

+0

WinForms 15chars – TheBlack

Antwort

3

Unter der Annahme, dass Sie auf eine WinForms beziehen ListBox, kann dies auf folgende Weise durchgeführt werden.

Anstatt den Items des ListBox auf ein Array/Sammlung von Zeichenketten (wie ich nehme an, Sie derzeit tun), können Sie es eher zu einer Sammlung eines benutzerdefinierten Typs (City in Ihrem Fall) einstellen könnte, und dann verwenden Sie die DisplayMember Eigenschaft (auf Name oder was auch immer die Eigenschaft Ihrer City Klasse, die Sie anzeigen möchten), so dass jedes Element in der ListBox kann tatsächlich als das benutzerdefinierte Objekt City zugegriffen werden, während es immer noch von angezeigt wird seine Name Eigenschaft.

+0

Genau das habe ich gesucht. Vielen Dank! – TheBlack

0

können Sie den Artikel durch den Benutzer durch folgenden Code ausgewählt erhalten:

list1.SelectedItem; 

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

Sie können die ListBox mit einem eigenen Typ eines Elements füttern, da dieser eine Object akzeptiert, vorzugsweise eine ToString() Methode implementiert. Es kann ein Objekt mit ID- und Name-Eigenschaften sein, auf die mit der Eigenschaft SelectedItem der ListBox zugegriffen werden kann.

1

Ich würde eine ListView (im Detailmodus) anstelle einer ListBox verwenden. Dann könnten Sie die Tag-Eigenschaft von ListViewItem verwenden, die dem SetItemDataPtr von MFC entspricht.

+0

Ich war nur auf der Suche nach :) Danke! – TheBlack

Verwandte Themen