Я заполняю комбинированный список из источника данных, и у меня есть код, когда пользователь меняет выбор в комбинированном окне. Поэтому, очевидно, я не хочу, чтобы код в методе SelectedIndexChanged запускался при загрузке формы.
На этот вопрос SO был дан ответ, предложив две вещи:
1) Перед и после загрузки данных в комбинированный список используйте этот код:
private void LoadYourComboBox()
{
this.comboBox1.SelectedIndexChanged -= new EventHandler(comboBox1_SelectedIndexChanged);
// Set your bindings here . . .
this.comboBox1.SelectedIndexChanged += new EventHandler(comboBox1_SelectedIndexChanged);
}
Я пробовал это с этим кодом:
this.cboSelectCategory.SelectedIndexChanged -= new EventHandler(cboSelectCategory_SelectedIndexChanged);
Тем не менее, часть cboSelectCategory_SelectedIndexChanged
имеет красную ошибку волнистой и парящий над ним говорит: The name cboSelectCategory_SelectedIndexChanged does not exist in the current context
. Я попробовал этот код как в форме form_load, так и в методе, который фактически заполняет комбинированный список.
2) На этот же вопрос SO был дан ответ для использования события SelectedIndexChangeCommitted
.
private void cboSelectCompany_SelectedIndexChangeCommitted(object sender, EventArgs e)
{
string selectedCat = cboSelectCategory.SelectedValue.ToString();
Console.WriteLine(selectedCat);
}
Но это событие не срабатывает, когда я изменяю выделение в выпадающем списке.
Я что-то упустил? Мой код выключен или не в том месте?