gpt4 book ai didi

wpf - 如何在 View 中拦截 RoutedCommand 的执行? (WPF/MVVM)

转载 作者:行者123 更新时间:2023-12-04 12:43:36 26 4
gpt4 key购买 nike

在 WPF/MVVM 应用程序中,我试图找到一种代码高效的方法来将主 View 光标设置为 Cursors.Wait在任何冗长的操作之前,并在完成后将其恢复到默认光标。

由于所有操作都是使用路由命令调用的,我想找到一种拦截命令执行的方法,理想情况下是通过创建一个通用命令类来包装内置路由命令的实例,但我无法想象如何做这个。

具体来说,RoutedCommand.Execute方法不是虚拟的,所以我需要另一种机制来拦截它的调用。另外,我不确定通用命令类的实例如何引用它必须为其设置光标的 View 。

请问有什么建议吗?

谢谢,

蒂姆

最佳答案

您可以以静态方式设置 Cursor。效果是当应用程序具有焦点而不是在某个控件上时光标将是“等待”。

代码,在冗长的操作开始时将成为 ViewModel 的一部分:

Mouse.OverrideCursor = Cursors.Wait;

操作完成后,您必须像这样清除覆盖:
Move.OverrideCursor = null;

关于wpf - 如何在 View 中拦截 RoutedCommand 的执行? (WPF/MVVM),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3193907/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com