Как устранить начальное время загрузки элемента управления Silverlight Autocompletebox? - PullRequest
1 голос
/ 17 ноября 2009

У меня есть Silverlight Autocompletebox, чтобы показать список сотрудников, и он отлично работает. Я получаю данные, загружая список BusinessObjects.

Моя проблема в том, что в первый раз когда вы начинаете что-то печатать в поле, требуется около 2 секунд, чтобы вернуться с предложениями. Впоследствии любые последующие поиски кажутся почти мгновенными.

Очевидно, что здесь должна происходить какая-то ленивая загрузка, она должна быть каким-то образом сконфигурирована для запуска при первоначальном использовании элемента управления.

Я хотел бы каким-то образом загрузить данные при первой загрузке элемента управления, чтобы улучшить взаимодействие с пользователем, даже если при первом вводе текста подсказки кажутся мгновенными.

Кто-нибудь знает, как я могу это сделать?

Ответы [ 2 ]

1 голос
/ 14 августа 2011

Я добавил решение к этому здесь , которое может ограничить количество элементов, загружаемых в ACB, и дает хорошую производительность для 200000 элементов.

1 голос
/ 19 ноября 2009

Хорошо, после того, как вы вернулись туда и обратно на форуме Silverlight, я нашел отличный обходной путь, которым я бы хотел поделиться. Он был предоставлен дружественным австралийцем по имени Мэтт, подумал, что я опубликую его здесь, если людям будет любопытно.

В принципе, но если установить минимальную длину поиска равной 2, вы значительно уменьшите обработку и получите возможность «подтягиваться» к второму и третьему символам. Два других атрибута, которые он предлагает, также помогают ускорить возвращение.

Вот его пост:

Я обновил свой тестовый проект с вашим кодом и гораздо большей коллекцией элементов (100 000), и я начал видеть проблему ...:)

Установка MinimumPrefixLength на 2 (или любое значение больше 1. по умолчанию установлено на 1), а MinimumPopulateDelay на 200 (по умолчанию установлено на 0) устраняет проблему для меня. Я бы также рекомендовал установить MaxDropDownHeight, поскольку это обеспечит правильную работу виртуализации в AutoCompleteBox.

uxAuto.MinimumPrefixLength = 2;
uxAuto.MinimumPopulateDelay = 200;
uxAuto.MaxDropDownHeight = 300; 

Можете ли вы попробовать это в своей реализации, и дайте мне знать, как это происходит? ...

Спасибо. матовый. Мэтью Олни Старший консультант - Пользовательский опыт Аванаде Австралия

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...