У меня есть ComboBox WPF, который я использую для поиска имен. Я использую шаблон MVVM, и все это довольно просто:
Свойство ComboBox Text связано со свойством «SearchString» на виртуальной машине. Элемент ComboBox ItemsSource связан со свойством «SearchResult» на виртуальной машине. Это список объектов, отображаемых с использованием DataTemplate. ComboBox также запускает событие «PreviewKeyDown», и нажатие клавиши ввода выбирает первый элемент в наборе результатов, а клавиши со стрелками вверх и вниз пересекают результаты. SelectedItem привязан к DataContext для GroupBox. Эта часть работает очень хорошо.
Когда элемент выбран в ComboBox, WPF автоматически пытается заменить «Текст» моим SelectedItem. Это приводит к тому, что мой набор результатов очищается, а «Текст» возвращается в пустую строку.
Поведение, которое мне нравится , заключается в том, что при выборе элемента текст в ComboBox остается точно таким же, так что мой пользователь может продолжать просматривать набор результатов, используя стрелки вверх и вниз.
Есть ли элегантный способ добиться этого? Я думаю, что ничего не будет добавлено к вопросу с фрагментом кода, но с удовольствием предоставим, если захотим.