Модераторы: gambit, Kefir, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Async TabControl, сделать быстрореагирующим 
:(
    Опции темы
ZOXEXIVO
Дата 25.5.2009, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 3.4.2007

Репутация: нет
Всего: нет



Код

<TabControl Name="tabMainControl" Background="#FFBDDEFF">
    <TabItem>
         <TabItem.Header>
               ***
         </TabItem.Header>
         <Grid>
            <Pages:MainPage x:Name="pageMain"></Pages:MainPage>
          </Grid>
    </TabItem>


Pages:MainPage - UserControl, в котором есть ListBox, который берет данные из БД. 

Как лучше сделать асинхронным TabControl, чтобы ListBox заполнялся после открытия вкладки и не было задержки
PM MAIL   Вверх
dazy
Дата 25.5.2009, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 344
Регистрация: 15.9.2006

Репутация: 3
Всего: 8



Цитата

Как лучше сделать асинхронным TabControl, чтобы ListBox заполнялся после открытия вкладки и не было задержки

Наверное загружать данные ДО открытия вкладки. Сразу же после загрузки странички. Ну или когда это возможно. 

Другой вариант - не бояться задержки, а показывать пользователю такой специальный прогресс бар (как он там правильно называется, который активно используется на богатых аяксом сайтах), чтобы пользователь был в курсе, что в бэкграунде идет важный процесс, и вот-вот все уже будет хорошо.
PM MAIL   Вверх
ZOXEXIVO
Дата 25.5.2009, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 3.4.2007

Репутация: нет
Всего: нет



Цитата(dazy @ 25.5.2009,  12:34)
Цитата

Как лучше сделать асинхронным TabControl, чтобы ListBox заполнялся после открытия вкладки и не было задержки

Наверное загружать данные ДО открытия вкладки. Сразу же после загрузки странички. Ну или когда это возможно. 

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

Вот сейчас я сделал BackgroundWorker'ом
Код

<TabItem>
      <Grid>
         <Pages:DebtPage x:Name="pageDebt"></Pages:DebtPage>
          <Controls:WaitWindow />
       </Grid>
 </TabItem>

В WaitWindow есть анимированный ProgressBar, но все равно он стопорится, пока BackgroundWorker не загрузит все данные
PM MAIL   Вверх
dazy
Дата 25.5.2009, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 344
Регистрация: 15.9.2006

Репутация: 3
Всего: 8



Простите, а БД локальная? Или данные через веб сервис приходят?
PM MAIL   Вверх
ZOXEXIVO
Дата 25.5.2009, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 3.4.2007

Репутация: нет
Всего: нет



Все, сдалал, спасибо !
PM MAIL   Вверх
WolfTheGrey
Дата 26.5.2009, 09:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 207
Регистрация: 21.1.2009
Где: forum.vingrad.ru

Репутация: 2
Всего: 2



Ты не единственый ученик. Показывай что там намутил smile
PM MAIL   Вверх
ZOXEXIVO
Дата 26.5.2009, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 3.4.2007

Репутация: нет
Всего: нет



Показывать не буду.... Не красиво получилось. 

Значит, вот такой код
Код

 <TabItem>
      <Grid>
         <Pages:DebtPage x:Name="pageDebt"></Pages:DebtPage>
          <Controls:WaitWindow Name="DebtWait" />
       </Grid>
 </TabItem>


Внутри Pages:DebtPage, запускаем BackgroundWorker и пока он не выполнит свою задачу - основной контрол Pages:DebtPag остается полностью прозрачным а Controls:WaitWindow не прозрачным. Соответственно, потом, делаем анимацией все наоброт. Все банально....
Доступ к WaitWindow получил из Application.Current.MainWindow.FindName("DebtWait") - ну вообщем у кого как

Вот, кстати, программа, которая это использует. (последняя вкладка не в счет)

http://da137.narod.ru/FinancialManager/FMInstall_en.zip (3.5 SP1 req)


Это сообщение отредактировал(а) ZOXEXIVO - 26.5.2009, 13:47

Присоединённый файл ( Кол-во скачиваний: 13 )
Присоединённый файл  FM_BINGRAD.png 72,00 Kb
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.0749 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.