【发布时间】:2011-03-12 18:08:54
【问题描述】:
在 WPF / MVVM 应用程序中,我试图找到一种代码高效的方法,在任何冗长操作之前将主视图光标设置为 Cursors.Wait,并在完成后将其恢复为默认光标。
由于所有操作都是使用路由命令调用的,所以我想找到一种拦截命令执行的方法,理想情况下是通过创建一个包含内置路由命令实例的通用命令类,但我无法可视化如何做到这一点。
具体来说,RoutedCommand.Execute 方法不是虚拟的,所以我需要另一种机制来拦截它的调用。另外,我不确定通用命令类的实例如何引用它必须为其设置光标的视图。
有什么建议吗?
【问题讨论】:
-
这很可能是您想要这样做的原因,这听起来有些复杂,但是您是否有理由不能简单地在 ViewModel 中创建 CurrentCursor 属性,并将光标绑定到您对该物业的看法?
-
@Wonko。谢谢 - 这是一个很好的问题,我同意这似乎是最符合 MVVM 的方法。但是,这意味着我将不得不对许多 ViewModel 方法应用相同的 2 行代码更改,而我希望集中光标管理代码。第二个复杂因素是我的视图包含一些接受路由命令的控件。我如何将相同的逻辑应用于它们的操作,因为它们不是 ViewModel 的一部分?
标签: wpf mvvm mouse-cursor routed-commands