0

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

我有一个包含内容控件的用户控件(父级);此内容控件绑定到底层 ViewModel 中的 user-control(child) 属性。父用户控件上的按钮/命令会更改内容控件的绑定用户控件。

在此处输入图像描述

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

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

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

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

4

1 回答 1

1

在后台线程中进行数据访问。

然后在 ViewModel 中放置一些IsBusy属性,并在它变为 true 时显示一些“加载消息”:

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

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

于 2013-06-10T21:14:22.707 回答