我有一个使用MVVM模式的Silverlight应用程序。我有一个WCF服务,它允许我验证用户(我没有直接控制该服务 - 假设它是一个黑盒子,只返回用户信息和用户拥有的权限列表)。因此,当应用程序启动时,我想从该服务中提取安全数据。
现在,当我这样做时,我的视图和视图模型最终会在服务返回安全数据之前进行初始化。这会导致问题,因为视图模型需要根据具有特定权限的用户禁用按钮并使事物可见/不可见。
是否有一种模式允许我阻止视图/视图模型的初始化,直到WCF调用返回?你会如何尽可能优雅地解决这个问题呢?
答案 0 :(得分:2)
通常,您使用BusyIndicator
中的Silverlight Toolkit
来处理此类情况。
而不是禁用UI
,而是显示进度。
您所做的是在IsBusy
上提供ViewModel
属性。加载数据时,请将其余时间设置为True
和False
。使用UI
控件包裹您的BusyIndicator
,并将该属性的值与BusyIndicator
的{{1}}属性绑定。
有了这个,IsBusy
会在忙碌时确认。