BooleanToVisibilityConverter

BooleanToVisibilityConverter

我正在为我的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"/>

10-07 15:30