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;
}