2013-03-22 13 views
6

Abbiamo dizionario come questo:Come ottenere il valore di SelectedValue in ComboBox pieno di dizionario

var dictionary = new Dictionary<int, int> { { 0, 100 }, { 1, 202 }, { 2, 309 }, }; 

e così via un sacco di valori. dizionario binded a comboBox in questo modo:

comboBox1.ItemsSource = dictionary; 
comboBox1.DisplayMemberPath = "Value"; 

Sono chiedo come posso ottenere SelectedValue di questa comboBox, se comboBox.Text funziona solo per i valori immessi manualmente e questo codice: valore

string value = comboBox1.SelectedValue.ToString(); 

ritorno come [1, 202], mentre ho bisogno di cancellare int TValue "202". Non riesco a trovare una domanda simile, quindi la chiedo lì e spero che la risposta possa essere utile per qualcun altro.

+0

Utilizzare questo come alternativa all'apprendimento come creare un 'BindingSource' utilizzando un dizionario ' o Dictionaryt ' http://stackoverflow.com/questions/6412739/binding-combobox-using-dictionary-as-the- datasource – MethodMan

risposta

8

Sembra che si deve lanciare SelectedValue in KeyValuePair<int, int>:

string value = ((KeyValuePair<int, int>)comboBox1.SelectedValue).Value.ToString(); 

Tuttavia, si dovrebbe mettere un brakepoint lì e verificare che tipo SelectedValue è davvero.

Presumo che sia KeyValuePair<int, int> perché la raccolta di origine è Dictionary<int, int> e causa della stringa di output per SelectedValue.ToString() che è [1, 202].

+0

Brillante! Funziona alla grande, grazie mille !! Accetterò la tua risposta al più presto. – Mike

+0

grazie è questo che serve .... – Armaan