экран загрузки для списка c # wpf - PullRequest
3 голосов
/ 17 апреля 2010

Я использую список, где в среднем около 500 миниатюр (элементов), которые можно отсортировать и найти.

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

Я не думаю, что смогу полностью покончить с рефлексией и дать временные рамки для проекта, а скорость не очень важна, но я хотел бы получить графическую индикацию задержки, чтобы она не смущала пользователь. Как я могу сделать что-то вроде экрана загрузки видео с веб-сайта, где окно со списком исчезает, а какой-то круг загрузки указывает, что он обрабатывается до тех пор, пока список не будет готов? Или даже просто выделение серым со словами «Загрузка ...» на несколько секунд может сработать. Есть идеи?

Заранее спасибо за помощь и предложения !!!

Ответы [ 3 ]

1 голос
/ 18 мая 2010

Как писал Вир, BackgroundWorker, вероятно, ваш лучший выбор.

Для графической индикации прогресса и / или задержки взгляните на

http://www.codeproject.com/KB/WPF/WPF_Loading_Wait_Adorner.aspx

Похоже, именно то, что вы хотите сделать.

1 голос
/ 17 апреля 2010

Silverlight-Controlkit поставляется с очень удобным управлением «busyindicator» ... Жаль, что для WPF такого по умолчанию не существует.

Но я нашел этот, казалось бы, сопоставимый для вас элемент управления: http://sweux.com/blogs/pombeiro/index.php/2009/12/01/a-busy-state-indicator-attached-behavior/

скачать-источник: http://gallery.expression.microsoft.com/en-us/BusyIndicator

0 голосов
/ 17 апреля 2010

Попробуйте BackgroundWorker

Используйте метод DoWork для динамического обновления списка на основе поискового ключевого слова. Используйте метод ProgressChanged, чтобы обновить ваш пользовательский интерфейс с помощью анимации с надписью «Загрузка». Можно использовать ProgressBar

Используйте Dispatcher для доступа к вашему списку внутри метода DoWork

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