comboBox绑定字典Dictionary 获取value中的值

第一种 最简洁的方法

Dictionary<string, string> list = new Dictionary<string, string> { {"this is i1", "001"}, {"this is i2", "002"} };

private void Form1_Load(object sender, EventArgs e) {

comboBox1.Items.AddRange(list.Keys.ToArray());

}

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) {

string a = list[comboBox1.SelectedText];

textBox1.Text = a;

}

 

第二种 笨点的方法

绑定数据

private void Form1_Load(object sender, EventArgs e) {

var list = new Dictionary<string, string> { {"this is i1", "001"}, {"this is i2", "002"} };

comboBox1.Items.AddRange(new object[] {list.ToArray()});

comboBox1.DisplayMember = "key";

comboBox1.ValueMember = "value";

}


//绑定数据 以上方法失效用这个方法
Dictionary<string, string> dict = new Dictionary<string, string> {{"baidu.com", "百度"}, {"goolge.com", "谷歌"}, {"qq.com", "腾讯"}};
comboBox1.DataSource = new BindingSource(dict, null);
comboBox1.ValueMember = "Key";//文本对应的值
comboBox1.DisplayMember = "Value";//显示的文本

获取值

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) {

string a = ((KeyValuePair<string, string>)comboBox1.SelectedItem).Value;

textBox1.Text = a;

}

 

posted @ 2017-03-03 15:12  simadi  阅读(803)  评论(0编辑  收藏  举报