我使用windows phone应用程序并使用MVVM,在我的viewmodel中,我在那里加载数据代码,加载数据的属性绑定到我的视图(XAML),那么如何获取有关加载和加载数据的信息?因为我需要在我的xaml中添加ProgressIndicator所以我的用户可以知道数据的加载...
如果我没有使用mvvm并将我的所有代码放入mainpage.xaml.cs,那么我只需要将ProgressIndicator直接放入我的加载代码中就像这样
SystemTray.ProgressIndicator.IsIndeterminate = true;
SystemTray.ProgressIndicator.IsVisible = true;
(..我的逻辑代码..)
SystemTray.ProgressIndicator.IsIndeterminate = false
SystemTray.ProgressIndicator.IsVisible = false;
如果它在mvvm中那么我该怎么做?
答案 0 :(得分:2)
通常,MVM模式中的ViewModel和View之间的交互通过数据绑定发生,并且在某些特殊情况下通过使用Messanger模式的消息发生。使用数据绑定可以在一般场景中适应这种情况。在viewmodel中创建属性以指示正在进行的工作区,例如IsBusy
。将ProgressIndicator IsIndeterminate
和IsVisible
属性绑定到IsBusy
:
<shell:SystemTray.ProgressIndicator>
<shell:ProgressIndicator IsIndeterminate="{Binding IsBusy}"
IsVisible="{Binding IsBusy}"
Text="{Binding Message}" />
</shell:SystemTray.ProgressIndicator>
使用数据绑定,viewmodel中的代码结构可以简单如下:
IsBusy = true;
await MyFunction();
IsBusy = true;
....
private async void MyFunction()
{
(..my logic code..)
}
检查此SO answer以获取进一步的参考。