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