在加载绑定的usercontrol时显示在contentcontrol中加载动画

时间:2013-06-10 20:48:28

标签: .net wpf mvvm user-controls

我有一个遵循MVVM模式(MVVM_Light框架)的WPF .NET 4.5应用程序。

我有一个包含内容控件的用户控件(父级);此内容控件绑定到基础ViewModel中的用户控件(子)属性。父usercontrol上的按钮/命令更改Content Control的绑定用户控件。

enter image description here

我的问题是子视图模型在其构造函数中有一个繁重的数据库过程,因此UI在加载该用户控件时挂起。我想在创建子视图模型然后加载时显示加载动画。

我尝试了什么: 我已经尝试将混合动画添加到usercontrol的加载事件中,但这不起作用。

另外

我创建了一个usercontrol,它是一个加载动画,并将其作为内容控件的默认内容。但是当单击按钮并且正在加载新的用户控件时,动画将停止。

问题: 如何加载另一个用户控件时加载动画?

1 个答案:

答案 0 :(得分:1)

您的数据访问背景线程中的内容。

然后在ViewModel中放入一些IsBusy属性,并在其成为真时显示“Loading Message”:

public void DoHeavyStuff()
{
   IsBusy = true;
   Task.Factory.StartNew(() => GetDataFromDB())
               .ContinueWith(x => IsBusy = false);
}

从构造函数中删除所有繁重的操作。这是一个糟糕的设计。