В WPF / приложение MVVM, я пытаюсь найти эффективный кодом способ установить основной курсор представления на Cursors.Wait
до любой долгой операции и восстановить его к курсору по умолчанию после завершения.
Так как все операции вызываются с помощью направленных команд, я хотел бы найти способ прервать выполнение команды, идеально путем создания класса групповой команды, который переносит экземпляр встроенной направленной команды, но я не могу визуализировать, как сделать это.
А именно, RoutedCommand.Execute
метод не является виртуальным, таким образом, мне нужен другой механизм для прерывания его вызовов. Кроме того, я не уверен, как экземпляр класса групповой команды сослался бы на представление, для которого он должен установить курсор.
Совет?
Спасибо,
Tim
Вы можете установить курсор статичным образом. Эффект заключается в том, что курсор будет "Ждать", пока приложение имеет фокус, а не когда оно находится над определенным элементом управления.
Код, который будет частью ViewModel в начале длительной операции:
Mouse.OverrideCursor = Cursors.Wait;
После завершения операции вы должны очистить переопределение следующим образом:
Move.OverrideCursor = null;