在ViewModel中使用内置WPF命令

s73*_*v3r 4 wpf mvvm

好的,所以我试图掌握WPF命令的概念.它们看起来非常简单,直到您尝试将命令转发给不是XAML代码的东西.我已经看到了使用自定义命令执行此操作的几种方法,但没有直接解释如何使用内置WPF命令执行此操作.像"打开","保存","剪切"等等.

有一种简单的方法,使用RelayCommand类或其他东西,将Open命令转发到我的ViewModel?

M. *_*ley 6

WPF的内置ApplicationCommands等原本并没有考虑到MVVM,所以当你试图将它们放在ViewModel中时它们并不真正匹配.

在WPF 4中,现在可以绑定InputCommands到ViewModel:

https://www.thomaslevesque.com/2009/10/26/vs2010-binding-support-in-inputbindings/

另一种方法是使用a DelegateCommands,您可以自己实现,也可以从像Prism这样的库中获取.您可以DelegateCommand在viewmodel中将其定义为对象,并从视图中将其绑定到该对象.

一旦绑定工作,您就可以在viewmodel代码中定义命令的作用.