如何将应用程序命令绑定到视图模型(WPF)?

Jim*_*mmy 7 c# wpf mvvm relaycommand

我已经阅读了Josh Smiths关于使用RelayCommand查看模型的绑定命令的文章.但是,我需要将ApplicationCommands.Save绑定到视图模型,以便当用户单击保存菜单项时,它将在窗口中处理.这怎么可能?

wek*_*mpf 1

我知道我们使用服务的最佳解决方案。例如,像这样的 ICommandBindingsProvider:

public interface ICommandBindingsProvider
{
    CommandBindingCollection CommandBindings { get; }
}
Run Code Online (Sandbox Code Playgroud)

这会被注入到您的 ViewModel 中并像这样使用:

public MyViewModel(ICommandBindingsProvider commandBindings)
{
    commandBindings.Add(new CommandBinding(....));
}
Run Code Online (Sandbox Code Playgroud)

服务如何注入将取决于您使用的 MVVM 框架。大多数(但不是全部)支持某种服务注入功能。如果您需要更具体的代码示例,请查看Onyx,它执行服务注入,并且有一个专门执行此操作的服务。