2013-03-22 33 views
6

Chúng tôi có từ điển như thế này:Làm thế nào để nhận được giá trị của SelectedValue trong ComboBox đầy từ điển

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

và vân vân rất nhiều giá trị. Từ điển binded để combobox như thế này:

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

Tôi tự hỏi làm thế nào tôi có thể nhận được SelectedValue của ComboBox này, nếu comboBox.Text chỉ hoạt động cho các giá trị nhập theo cách thủ và mã này: giá trị

string value = comboBox1.SelectedValue.ToString(); 

trở lại như [1, 202], trong khi tôi cần truyền hình trực tiếp rõ ràng "202". Tôi không thể tìm thấy câu hỏi tương tự vì vậy tôi hỏi nó ở đó và hy vọng rằng câu trả lời có thể hữu ích cho người khác.

+0

Sử dụng tính năng này làm phương án thay thế để tìm hiểu cách tạo 'BindingSource' bằng cách sử dụng' Dictionary hoặc Dictionaryt 'http://stackoverflow.com/questions/6412739/binding-combobox-using-dictionary-as-the- nguồn dữ liệu – MethodMan

Trả lời

8

Hình như bạn phải đúc SelectedValue vào KeyValuePair<int, int>:

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

Tuy nhiên, bạn nên đặt một brakepoint đó và kiểm tra những loại SelectedValue thực sự là.

Tôi giả sử đó là KeyValuePair<int, int> vì bộ sưu tập nguồn của bạn là Dictionary<int, int> và do chuỗi đầu ra cho SelectedValue.ToString()[1, 202].

+0

Brilliant! Hoạt động tuyệt vời, cảm ơn bạn rất nhiều !! Tôi sẽ chấp nhận câu trả lời của bạn càng sớm càng tốt. – Mike

+0

cảm ơn đây là những gì cần .... – Armaan

Các vấn đề liên quan