2011-12-26 8 views
6

Sto scrivendo un'app C# utilizzando winforms. Ho una lista. Ottengo i miei dati dal file xml, dal nome utente e dai loro id. Voglio che i nomi vengano mostrati nella lista e quando seleziono uno di loro, voglio ottenere il suo id usando la proprietà selectedValue. Tuttavia non posso farlo. Ho provato keyValuePair che mostra "[username, id]" nella lista che non è buona (vedi il codice sotto). Come posso simulare l'html select in C# in breve? Voglio che i nomi vengano mostrati nella casella di riepilogo, ma voglio avere gli id ​​nel backend. Grazie ...Impossibile eseguire il valore-chiave nella casella di riepilogo in C#

LB_UserList.Items.Add(new KeyValuePair<string, string>(full_name, node["user_id"].InnerText)); 
+0

possibile duplicato di [Come posso ottenere alla casella di riepilogo "chiave" dell'oggetto in C# winforms app?] (http://stackoverflow.co m/domande/507.354/how-do-i-get-at-the-ListBox-elementi-chiave-in-c-sharp-WinForms-app) – Moshtaf

risposta

14

uso C# dictionary per questo,

Dictionary<string, string> list = new Dictionary<string, string>(); 
list.Add("item 1", "Item 1"); 
list.Add("item 2", "Item 2"); 
list.Add("item 3", "Item 3"); 
list.Add("item 4", "Item 4"); 

dropdown.DataSource = list; 
dropdown.DataTextField = "Value"; 
dropdown.DataValueField = "Key"; 
dropdown.DataBind(); 

EDIT:

listBox.DataSource = new BindingSource(list, null); 
listBox.DisplayMember = "Value"; 
listBox.ValueMember = "Key"; 
+0

DataTextField, DataValueField e DataBind manca in ListBox in C#. Per DataSource, ottengo questo errore: "Complex DataBinding accetta come origine dati sia un IList che un IListSource." Tuttavia, grazie per la rapida risposta :) – Mehmed

+1

vedere la risposta aggiornata –

+0

Il codice aggiornato funziona alla grande. Grazie! – vkapadia

Problemi correlati