2013-03-22 13 views
6

Mamy słownika tak:Jak uzyskać wartość SelectedValue w ComboBox wypełniony Słownik

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

i tak na wiele wartości. Słownik zbindowanych do combobox tak:

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

jestem zastanawiam się, jak mogę dostać tego SelectedValue ComboBox, jeśli comboBox.Text działa tylko ręcznie wprowadzonych wartości i ten kod: wartość

string value = comboBox1.SelectedValue.ToString(); 

powrót jak [1, 202], a ja potrzebuję wyraźnej int TValue "202". Nie mogę znaleźć podobnego pytania, więc pytam o to i mam nadzieję, że odpowiedź może być przydatna dla kogoś innego.

+0

Użyj tego jako alternatywy dla nauki tworzenia "BindingSource" za pomocą 'Dictionary lub Dictionaryt ' http://stackoverflow.com/questions/6412739/binding-combobox-using-dictionary-as-the- datasource – MethodMan

Odpowiedz

8

Wygląda na to, że masz do oddania SelectedValue do KeyValuePair<int, int>:

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

Jednakże, należy umieścić brakepoint tam i sprawdzić, jaki rodzaj SelectedValue jest naprawdę.

Przypuszczam, że to KeyValuePair<int, int> ponieważ zbiór źródłowy jest Dictionary<int, int> i ze względu na ciąg wyjściowy dla SelectedValue.ToString() która [1, 202].

+0

Genialny! Działa świetnie, dziękuję bardzo !! Przyjmę twoją odpowiedź jak najszybciej. – Mike

+0

dzięki temu jest taka potrzeba .... – Armaan

Powiązane problemy