AutoCompleteComboBox Стрелка вверх / Стрелка вниз для прокрутки списка - PullRequest
4 голосов
/ 09 декабря 2011

Я создал простое AutoCompleteBox в своем приложении WPF, и оно отлично загружается с кодом, перехватывающим событие Populate, но когда список всплывает, я нажимаю клавишу со стрелкой вниз и добираюсь до конца списка по вертикали.полоса прокрутки не прокручивается.

Значения в поле постоянно меняются, как будто они прокручиваются, но полоса прокрутки не двигается.

Если я использую мышь, она прекрасно прокручивается.

Мне просто нужна клавиша со стрелкой для его прокрутки.

Любые идеи / предложения?

Я новичок в WPF и всегда искал это исправление.

Ответы [ 2 ]

2 голосов
/ 16 июня 2014

Присоедините событие SelectionChanged и затем внутри обработчика:

private void AutoCompleteBox_OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
    AutoCompleteBox box = (AutoCompleteBox)sender;
    ListBox innerListBox = (ListBox) box.Template.FindName("Selector", box);
    innerListBox.ScrollIntoView(innerListBox.SelectedItem);
}
1 голос
/ 09 декабря 2011

Я вижу то же самое поведение. Я нашел сообщение в codeplex , в котором говорится о другой проблеме, но в нижней части сообщения у них есть класс AutoCompleteBoxEx, который поддерживает ScrollIntoView, так что вы можете подключить даже SelectionChanged, и это должно дать вам поведение, которое вы хотите , Я понятия не имею, почему это не запекается. У меня была возможность проверить опубликованный код.

Обновление

Просто вставил код из поста в класс и использовал его в XAML, изменив AutoCompleteBox на AutoCompleteBoxEx и добавив пространство имен для AutoCompleteBoxEx, и все заработало нормально. Вам не нужно указывать какое-либо событие в XAML, а также не нужно добавлять какой-либо код к коду позади.

...