У меня есть приложение WPF, использующее шаблон MVVM, который иногда должен показывать курсор ожидания, когда он занят выполнением чего-то, что пользователь должен ждать.Благодаря комбинации ответов на этой странице: отображать «Песочные часы», когда приложение занято , у меня есть решение, которое почти работает (хотя это не совсем MVVM по духу).Всякий раз, когда я делаю что-то отнимающее много времени в моих моделях представления, я делаю это:
using (UiServices.ShowWaitCursor())
{
.. do time-consuming logic
this.SomeData = somedata;
}
(ShowWaitCursor () возвращает IDisposable, который показывает waitcursor, пока он не удаляется)установить какое-то свойство.Это свойство привязано в моем XAML, например, так:
<ItemsControl ItemsSource="{Binding SomeData}" />
Однако, поскольку это может быть длинный список объектов, а иногда со сложными шаблонами данных и т. Д., Фактическое связывание и рендеринг иногда занимает значительное количествовремени.Поскольку эта привязка происходит вне моего оператора using, ожидание исчезнет до того, как фактическое ожидание закончится для пользователя.
Поэтому мой вопрос заключается в том, как создать ожидание в приложении WPF MVVM, которое учитывает привязку данных