Как прервать казнь RoutedCommand в рамках представления? (WPF / MVVM)

В WPF / приложение MVVM, я пытаюсь найти эффективный кодом способ установить основной курсор представления на Cursors.Wait до любой долгой операции и восстановить его к курсору по умолчанию после завершения.

Так как все операции вызываются с помощью направленных команд, я хотел бы найти способ прервать выполнение команды, идеально путем создания класса групповой команды, который переносит экземпляр встроенной направленной команды, но я не могу визуализировать, как сделать это.

А именно, RoutedCommand.Execute метод не является виртуальным, таким образом, мне нужен другой механизм для прерывания его вызовов. Кроме того, я не уверен, как экземпляр класса групповой команды сослался бы на представление, для которого он должен установить курсор.

Совет?

Спасибо,

Tim

7
задан Tim Coulter 7 July 2010 в 10:32
поделиться

1 ответ

Вы можете установить курсор статичным образом. Эффект заключается в том, что курсор будет "Ждать", пока приложение имеет фокус, а не когда оно находится над определенным элементом управления.

Код, который будет частью ViewModel в начале длительной операции:

Mouse.OverrideCursor = Cursors.Wait;

После завершения операции вы должны очистить переопределение следующим образом:

Move.OverrideCursor = null;
3
ответ дан 7 December 2019 в 16:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: