2010-03-30 2 views
0

Как заблокировать основную навигацию по адресу (mainpage.xaml), как и во всех приложениях навигации silverlight и в блоке управления блоками (например, какая бы страница ни была) во время вызовов async webservice? Любые лучшие практики?Блокировка взаимодействия временно, во время вызова wcf!

+0

Но почему? MS столкнулся с большими трудностями для создания асинхронных сообщений, чтобы потенциально блокировать вызовы серверов не ухудшали производительность клиента. – kmontgom

+0

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

ответ

1

Сделайте Пожалуйста, подождите модальный диалог на главной странице. Откройте его перед тем, как сделать вызов webservice, закройте его в обработчике ответа на вызов webservice.

+0

Я думаю, что вы правы, но как мне получить доступ к «Пожалуйста, подождите модальный диалог» из моей модели просмотра? Во-вторых, вы считаете, что рекомендуется блокировать страницу во время звонков? поскольку в браузере все еще есть кнопка «Назад» и «Переслать браузер» (я использую навигацию), пользователь все равно может злоупотреблять моим приложением. что ты говоришь ? –

2

BusyIndicator от Silverlight Toolkit.

+0

+1 для индикатора занятости. Просто заверните BusyIndicator вокруг всего вашего элемента управления, перед вызовом WS, установите IsBusy = true, когда вызов возвращает set IsBusy = false. Это легко и красиво. Тебе это понравится. – Brandon

+0

нет, я сказал всю страницу. –

+0

Вы можете заблокировать всю страницу с помощью BusyIndicator. –

Смежные вопросы