AutoCompleteBox: не проверяйте с помощью клавиш вверх/вниз
-
26-10-2019 - |
Вопрос
Мой автоматический ящик вызывает службу WCF при изменении выбора, обычно с мышью. Однако, если пользователь использует клавиши со стрелками для перемещения по выбору, событие запускается для каждого элемента, что делает приложение слишком большим интенсивным. Как предотвратить AutoCompleteBox_SelectionChanged для стрельбы при нажатии клавиш?
Я нашел это, которое звучало как хорошее решение, но это не работает http://betaforums.silverlight.net/forums/p/137710/307786.aspx
Решение
ОК, вместо того, чтобы использовать AutoCompleteBox_SelectionChanged, я использую AutoCompleteBox_DropDownClosed, и это исправлено проблему.
Другие советы
Я только что нашел, как я решил эту же проблему. Также я не использую SelectionChanged.
Я добавил поведение в DataTemplate Item (в корень сетки). Это поведение прикрепите обработчик нажмите к элементу. Когда используются ключи, поведение - это «спать», когда я нажимаю на элемент с мышью, поведение вызывается и выполняет его работу. (Также я связываю необходимое свойство элемента с свойством тега сетки DataTemplate, чтобы я мог добраться до него от поведения)
Не подходит для каждого решения, но может быть полезным.