启动时的Silverlight身份验证 - 如何模仿同步行为?

时间:2011-01-06 13:50:12

标签: silverlight silverlight-4.0

我有一个使用MVVM模式的Silverlight应用程序。我有一个WCF服务,它允许我验证用户(我没有直接控制该服务 - 假设它是一个黑盒子,只返回用户信息和用户拥有的权限列表)。因此,当应用程序启动时,我想从该服务中提取安全数据。

现在,当我这样做时,我的视图和视图模型最终会在服务返回安全数据之前进行初始化。这会导致问题,因为视图模型需要根据具有特定权限的用户禁用按钮并使事物可见/不可见。

是否有一种模式允许我阻止视图/视图模型的初始化,直到WCF调用返回?你会如何尽可能优雅地解决这个问题呢?

1 个答案:

答案 0 :(得分:2)

通常,您使用BusyIndicator中的Silverlight Toolkit来处理此类情况。

而不是禁用UI,而是显示进度。

您所做的是在IsBusy上提供ViewModel属性。加载数据时,请将其余时间设置为TrueFalse。使用UI控件包裹您的BusyIndicator,并将该属性的值与BusyIndicator的{​​{1}}属性绑定。

有了这个,IsBusy会在忙碌时确认。