У меня есть выпадающий, который привязан к словарю, как это:Настройка выбранного элемента в поле со списком привязан к словарю
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 секунд») в файл вместо ключа?
я пытался ваше первое предложение (comboBox1.SelectedItem = comboboxValues [45000];), но он не работал для меня. Произошла ошибка, она просто не дала желаемого эффекта. В настоящее время я использую оператор switch для ключа, а затем устанавливаю SelectedItem для вашего третьего предложения. Это работает для меня, но я чувствую, что жесткое кодирование значений переключателей - не очень гибкое решение. Любые мысли о том, почему ваше первое предложение не работает? – user685869
Это было из кода, который я фактически протестировал. Надеюсь, вы положили этот словарь в словарь первым? И связал это. – Paparazzi
Очень странно. Я только что создал новое приложение WinForms, вставил ваш точный код выше в обработчик события Form1_Load и прошел через него в отладчике. Когда появится моя форма, combobox показывает «30 секунд» (как я ожидал с помощью команды comboBox1.SelectedItem = comboboxValues [30000];). Тем не менее, я вернулся и отредактировал эту строку, чтобы быть comboBox1.SelectedItem = comboboxValues [45000], и когда появится форма, combobox по-прежнему показывает «30 секунд» вместо «45 секунд». Я должен упустить что-то очевидное здесь, если оно работает для вас, но я точно не знаю, что это такое. :-( – user685869