2012-03-03 5 views
0

데이터 원본으로 사전이있는 콤보 상자가 있습니다. 내가 콤보 상자에서 키를 조회하고 그것에 대한 표시 가치를 얻으려고합니다. FindString은 표시 값을 조회합니다.콤보 상자의 키 값을 사용하여 표시 값을 찾는 방법

var dictionary = new Dictionary<string, string>(); 
dictionary.Add("key1", "value1"); 
dictionary.Add("key2", "value2"); 
dictionary.Add("key3", "value3"); 
comboBox1.DataSource = new BindingSource(dictionary, null); 
comboBox1.ValueMember = "Key"; 
comboBox1.DisplayMember = "Value"; 
comboBox1.FindString("key3") //returns -1 
comboBox1.FindString("value3") //returns 2 

하지만 key3의 표시 값을 조회하고 싶습니다. 어떻게해야합니까?

답변

0

당신은 현재 선택한 항목과 값 찾으려면 :

dictionary["key3"]; 
:
comboBox1.SelectedValue 및 텍스트

원본 소스를 통해 열거하려면, 일반적으로 그냥 원본을 열거 할을

어떤 이유에서든 액세스 할 수 없다면 comboBox에서 바로 액세스 해주세요.

var originalDictionary = ((Dictionary<string,string>)((BindingSource)comboBox1.DataSource).DataSource); 
var randomValue = originalDictionary["key3"]; 
+0

고마워요. 유. 그게 효과가있을 것 같아요하지만 디스플레이 값을 찾을 수 있지만 키를 찾을 이상한 찾으십시오. – blue

+0

comboBox1.SelectedValue는 사용자가 선택한 하나의 항목을 찾고있는 경우 '키'를 가져옵니다. –

관련 문제