Как остановить автоматический выбор с помощью клавиши со стрелкой вниз в выпадающем списке WPF?
У меня есть контроль поиска, основанный на ComboBox. Элемент управления фильтрует его содержимое в соответствии с содержимым текстовой части выпадающего списка.
Все это работает так, как я хочу, если только я не нажму клавишу со стрелкой вниз, и в этом случае первый элемент в отфильтрованном списке будет выбран автоматически - я не хочу, чтобы это произошло.
Вы могли бы подумать, что это будет простой случай захвата ключевого события и маркировки его как обработанного, но это не работает.
Мой ComboBox выглядит так:
<ComboBox Name="cbUsers" VerticalAlignment="Top" HorizontalContentAlignment="Stretch" Grid.Row="1" Grid.Column="0" IsEditable="True" ItemsSource="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType=my:Recipients, AncestorLevel=1}, Path=FilteredUsers}" IsTextSearchEnabled="False" Focusable="True" ScrollViewer.CanContentScroll="True" TextBoxBase.TextChanged="cbUsers_TextChanged" SelectionChanged="cbUsers_SelectionChanged" ToolTip="Begin typing name or enter initials to find user."> </ComboBox>
Что я уже пробовал:
Я попытался добавить PreviewKeyUp в ComboBox и установить e. Handled в true, если клавиша-стрелка вниз. Это срабатывает, но не имеет никакого эффекта.
Я также попытался добавить обработчик непосредственно в часть текстового поля:
TextBox textBox = (TextBox)cbUsers.Template.FindName("PART_EditableTextBox", cbUsers); textBox.PreviewKeyUp += new System.Windows.Input.KeyEventHandler(textBox_PreviewKeyUp);
Опять же, это срабатывает, но не останавливает автоматический выбор.