【发布时间】:2011-11-12 21:13:09
【问题描述】:
我有一个使用 MVVM 模式的 WPF 应用程序,当它忙于做用户必须等待的事情时,有时必须显示一个等待光标。感谢此页面上的答案组合:display Hourglass when application is busy,我有一个几乎可以工作的解决方案(尽管它在精神上并不是真正的 MVVM)。 每当我在我的视图模型中做一些耗时的事情时,我都会这样做:
using (UiServices.ShowWaitCursor())
{
.. do time-consuming logic
this.SomeData = somedata;
}
(ShowWaitCursor() 返回一个 IDisposable,它显示等待光标,直到它被处理掉) 我的示例中的最后一行是我设置一些属性的地方。此属性绑定在我的 XAML 中,例如像这样:
<ItemsControl ItemsSource="{Binding SomeData}" />
但是,由于这可能是一长串对象,有时还包含复杂的数据模板等。实际的绑定和渲染有时需要相当长的时间。由于此绑定发生在我的 using 语句之外,因此等待光标将在用户实际等待结束之前消失。
所以我的问题是如何在考虑数据绑定的 WPF MVVM 应用程序中执行等待光标?
【问题讨论】: