在MVVM环境中的另一个xaml页面中获取元素
我有一个mainpage.xaml,其中包含以下进度条:在MVVM环境中的另一个xaml页面中获取元素,mvvm,windows-phone-8,Mvvm,Windows Phone 8,我有一个mainpage.xaml,其中包含以下进度条: <ProgressBar x:Name="DataLoading" Height="10" Margin="0,-14,0,0" Grid.Row="1" VerticalAlignment="Top" IsIndeterminate="True"/> 现在我需要让这个progressbar的可见性在调用Web服务后崩溃?我到哪里去拿?请帮助我是mvvm和windowsphone开发的新手?请告诉我你还需要什么代码才能给
<ProgressBar x:Name="DataLoading" Height="10" Margin="0,-14,0,0" Grid.Row="1" VerticalAlignment="Top" IsIndeterminate="True"/>
现在我需要让这个progressbar的可见性在调用Web服务后崩溃?我到哪里去拿?请帮助我是mvvm和windowsphone开发的新手?请告诉我你还需要什么代码才能给我答案谢谢
1只需向ViewModel添加一个bool属性
IsDataLoading
。使用将其值绑定到ProgressBar
的属性。根据您的Web服务状态,将IsDataLoading
属性设置为true和false
<Grid>
<Grid.Resources>
<BooleanToVisibiltyConverter x:Key="bool2VisConverter" />
</Grid.Resources>
<ProgressBar Visibility="{Binding IsDataLoading, Converter={StaticResource bool2VisConverter}}" />
</Grid>
在您的ViewModel中:
private bool _isBusy;
public bool IsBusy
{
get
{
return _isBusy;
}
set
{
if (value == _isBusy)
return;
_isBusy = value;
DispatcherService.BeginInvoke(() =>
{
RaisePropertyChanged(() => IsBusy);
});
}
}
视图中的Progressbar:
<ProgressBar IsIndeterminate="True" Visibility="{Binding IsBusy, Converter={StaticResource VisibilityConverter}}" />
Helo感谢您的快速响应,请给我一个语法的快速示例,因为我有一个名为IsDataLoaded的bool,如何将vis属性绑定到此bool?我从来没有听说过BooleantVisibilityConverteri,我用一个问题更新了答案,请不要说你必须反转你的属性逻辑,或者你必须编写你自己的转换器。太棒了!是的,它有效!,只是做了一些额外的改变,让我的工作!但是这个基本的想法是:谢谢你!