我正在为我的Metro应用程序使用MVVM模式。在我的主页上,用户按下按钮,应用程序将获取用户的当前位置。
获取用户位置的过程是异步的,我希望更改UI,因此该按钮将被禁用,并且将显示不确定的进度条,直到返回坐标为止。
根据MVVM,管理此问题的最佳方法是什么?有自定义的视觉状态?我注意到有ApplicationViewStates和CommonStates,是否可以添加自己的自定义代码?
你会怎么做?
最佳答案
我认为您正在寻找类似的东西:
viewModel:
private async void CommandExecution()
{
IsAwaitingResponse=true;
var response = await _myService.DoNetworkCall()
IsAwaitingResponse=false;
}
如果您使用的是Microsoft模板之一,则应在“公用”文件夹中安装一个BooleanToVisibilityConverter。您可以这样使用它:
<Page.Resources>
<BooleanToVisibilityConverter x:key="booleanToVisibilityConverter"/>
</Page.Resources>
"..."
<ProgressBar Visibility={Binding IsAwaitingResponse,Converter={StaticResource booleanToVisibilityConverter}}" IsIndeterminate="true"/>