ComboBox PreviewKeyDown не срабатывает для клавиши возврата - PullRequest
1 голос
/ 03 ноября 2011

Я хочу условно запретить клавише Enter / Return выбрать выделенный элемент в раскрывающемся списке ComboBox. Поэтому я подключил обработчик событий к ComboBox.PreviewKeyDown, чтобы я мог установить свойство Handled, но обработчик событий никогда не вводится. Когда я использую Snoop для просмотра событий, событие PreviewKeyDown вызывается для других клавиш, но никогда не срабатывает, когда я нажимаю клавишу возврата; даже на уровне окна. Почему событие не запускается?

EDIT: ComboBox должен быть редактируемым (IsEditable = true). Затем откройте выпадающий список. Начните вводить элемент в вашем списке, и он должен выбрать его для вас. Нажмите клавишу возврата.

1 Ответ

0 голосов
/ 27 февраля 2013

Попробуйте это

// prevent selecting an item when a comboboxitem is highlighted
protected override void OnPreviewKeyDown(KeyEventArgs e)
{
    if (e.Key == System.Windows.Input.Key.Enter || e.Key == System.Windows.Input.Key.Return)
    {
        e.Handled = true;
    }
    else
    {
        //if (base.IsDropDownOpen == false)
        //{
        //  base.IsDropDownOpen = true;
        //}
    }

    //base.OnPreviewKeyDown(e);
}
...