Проверка подлинности Silverlight во время запуска - как имитировать синхронное поведение? - PullRequest
1 голос
/ 06 января 2011

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

Прямо сейчас, когда я делаю это, мои представления и модели представлений могут в конечном итоге инициализироваться до того, как служба вернется с данными безопасности. Это вызывает проблемы, потому что модели представлений должны отключать кнопки и делать вещи видимыми / невидимыми на основании того, что у пользователя есть определенные привилегии.

Существует ли шаблон, который позволяет мне предотвращать инициализацию моделей представлений / представлений до тех пор, пока не будет возвращен вызов WCF? Как бы вы решили эту проблему настолько элегантно, насколько это возможно?

1 Ответ

2 голосов
/ 06 января 2011

Как правило, вы используете BusyIndicator из Silverlight Toolkit для подобных сценариев.

Вместо отключения UI вместо этого отображается прогресс.

Вы предоставляете IsBusy свойство на ViewModel. Во время загрузки данных установите для него значение True и False в остальное время. Оберните ваш UI элементом управления BusyIndicator и свяжите значение этого свойства со свойством BusyIndicator IsBusy.

С этим на вашем UI будет подтверждать, когда он занят.

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