Программно очистить выделение в WPF ComboBox

У меня есть ComboBox в WPF, чей ItemsSource установлен в список программно. Как я могу очистить выделение в обработчике событий? Я пробовал:

comboBox.SelectedIndex = -1;
comboBox.SelectedItem = null;
comboBox.SelectedValue = null;
comboBox.SelectedValue = "";

Ни один из них не имеет никакого эффекта.

Ответы

Ответ 1

comboBox.SelectedIndex = -1; работает для меня.

Вы делаете что-нибудь еще в своем обработчике событий? Используете ли вы привязку данных?

Ответ 2

comboBox.SelectedIndex = -1;

Это путь. Я не знаю, почему это не работает для вас; возможно, обработчик события для SelectedIndexChanged изменяет значение?

Ответ 3

Я обнаружил, что мне нужно добавить:

comboBox.Text = "";

чтобы очистить текст.

Ответ 4

Я хочу удалить событие ComboBox в DropDownClosed другого ComboBox. Поэтому я использовал следующий код внутри первого события ComboBox DropDownClosed

private void comboBox1_DropDownClosed(object sender, EventArgs e)
{
  this.comboBox.ItemsSource = null;
}