我有一个遵循MVVM模式(MVVM_Light框架)的WPF .NET 4.5应用程序。
我有一个包含内容控件的用户控件(父级);此内容控件绑定到基础ViewModel中的用户控件(子)属性。父usercontrol上的按钮/命令更改Content Control的绑定用户控件。
我的问题是子视图模型在其构造函数中有一个繁重的数据库过程,因此UI在加载该用户控件时挂起。我想在创建子视图模型然后加载时显示加载动画。
我尝试了什么: 我已经尝试将混合动画添加到usercontrol的加载事件中,但这不起作用。
另外
我创建了一个usercontrol,它是一个加载动画,并将其作为内容控件的默认内容。但是当单击按钮并且正在加载新的用户控件时,动画将停止。
问题: 如何加载另一个用户控件时加载动画?
答案 0 :(得分:1)
您的数据访问背景线程中的内容。
然后在ViewModel中放入一些IsBusy
属性,并在其成为真时显示“Loading Message”:
public void DoHeavyStuff()
{
IsBusy = true;
Task.Factory.StartNew(() => GetDataFromDB())
.ContinueWith(x => IsBusy = false);
}
从构造函数中删除所有繁重的操作。这是一个糟糕的设计。