如何连接 ViewModel 中的撤消命令并通过 Ctrl-Z 调用?

Dab*_*rnl 3 wpf command .net-4.0 mvvm wpf-4.0

我实现了自己的撤消/重做功能(在网络上的大量帮助下),这很有启发性。撤消和重做命令在 ViewModel 中定义。我可以通过Command的属性将这些命令连接起来MenuItem。最后一步,我想通过标准 CTRL-Z 和 CTRL-Y 键盘快捷键连接这些命令。

令我沮丧的是,我发现MenuItem班级不支持这一点。如果使用 WinForms,这会是小菜一碟,但在 WPF 中实现这一点似乎相当复杂。如何最容易做到?

Dab*_*rnl 5

这个问题实际上是这个问题的重复问题: 但是:从 WPF 4.0 开始,Michel Keijzer 的答案是正确的,非常简单!我将把它放在这里(在问题结束之前:-))

<Window.InputBindings>
    <KeyBinding Command="{Binding Path=UndoCommand}" 
      Key="Z" Modifiers="Control"></KeyBinding>
</Window.InputBindings>
Run Code Online (Sandbox Code Playgroud)

在 Window.Resources 之后添加此内容