将组合框中的选定项设置为绑定到字典

时间:2012-09-26 18:33:02

标签: .net winforms dictionary combobox selecteditem

我有一个与这样的字典绑定的组合框:

Dictionary<int, string> comboboxValues = new Dictionary<int, string>();
comboboxValues.Add(30000, "30 seconds");
comboboxValues.Add(45000, "45 seconds");
comboboxValues.Add(60000, "1 minute");
comboBox1.DataSource = new BindingSource(comboboxValues , null);
comboBox1.DisplayMember = "Value";
comboBox1.ValueMember = "Key";

我从SelectedItem获取密钥如下:

int selection = ((KeyValuePair<int, string>)comboBox1.SelectedItem).Key;

因此,如果我的用户选择“45秒”选项,我将返回45000并将该值保存到XML文件中。当我的应用程序加载时,我需要读取该值,然后自动设置组合框以匹配。当我只有45000的键时,是否可以这样做?或者我是否需要将值(“45秒”)保存到文件而不是密钥?

2 个答案:

答案 0 :(得分:6)

是的,你只能使用45000

comboBox1.SelectedItem = comboboxValues[45000];

如果您知道索引,则可以使用

comboBox1.SelectedIndex = i;

我基于零,-1表示没有选择。

或设置SelectedItem

comboBox1.SelectedItem = new KeyValuePair<int, string>(45000, "45 seconds");

private void Form1_Load(object sender, EventArgs e)
{
    Dictionary<int, string> comboboxValues = new Dictionary<int, string>();
    comboboxValues.Add(30000, "30 seconds");
    comboboxValues.Add(45000, "45 seconds");
    comboboxValues.Add(60000, "1 minute");
    comboBox1.DataSource = new BindingSource(comboboxValues, null);
    comboBox1.DisplayMember = "Value";
    comboBox1.ValueMember = "Key";
    comboBox1.SelectedItem = comboboxValues[45000];
}

答案 1 :(得分:2)

只需使用

comboBox1.SelectedValue=45000

,您的组合框将使用Key

预选