Стандартное поле со списком WPF имеет тип функциональности. То есть: когда поле со списком имеет фокус и пользователь набирает какие-то буквы, выделенный элемент в поле со списком изменяется (по отношению к набранным буквам).
Важно
Я не имею в виду поле со списком, для которого IsEditable установлено значение True, и я не имею в виду открытый список поля со списком. Я имею в виду чистое простое поле со списком с несколькими текстовыми элементами:
Вопрос
Как я могу имитировать это поведение в своем поле со списком пользовательской сборки? (он построен с нуля и имитирует все, кроме указанной функциональности).
Мое поле со списком было построено с использованием классической схемы: кнопка переключения, всплывающее окно и поле со списком внутри всплывающего окна (при условии, что я не включаю все дополнительные функции в описанную схему). Окно списка отлично поддерживает функциональность «ввода». Итак, моя идея заключалась в том, чтобы перенести все нажатия клавиш с кнопки-переключателя в список:
Private Sub MyToggleButton_PreviewKeyDown(sender As Object, e As System.Windows.Input.KeyEventArgs) Handles MyToggleButton.PreviewKeyDown
MyListBox_PreviewKeyDown(Me, e)
End Sub
Private Sub MyListBox_PreviewKeyDown(sender As Object, e As System.Windows.Input.KeyEventArgs) Handles MyListBox.PreviewKeyDown
MyBase.OnPreviewKeyDown(e)
End Sub
Но почему-то не работает.