我一直在Stack Overflow上寻找这个,但是找不到答案,所以我希望这不是重复......
我有一个使用MVVM模式的应用程序,我喜欢保持干净,但有时候一些代码背后的代码似乎比XAML解决方案更清晰。
我想知道是否可以从代码隐藏中触发命令。
我已经在我的视图中设置了一个命令参考(见下文)
<local:CommandReference
x:Key="CommandReferencePreviewReportsCommand"
Command="{Binding PreviewReportsCommand}" />
我想要做的是能够从视图后面的c#代码触发命令引用或ICommand。有谁知道怎么做?
答案 0 :(得分:6)
您可以从代码隐藏中调用命令:
var parameter = null; // can also be any object you'd like to use as a parameter
this.PreviewReportsCommand.Execute(parameter);
答案 1 :(得分:4)
好的...... Mark Seemann - 你让我走在正确的轨道上...所以我提高了你的投票......
我没有意识到数据上下文可以是类型转换,然后可以使ViewModel中的命令可见...所以下面的代码适用于我的情况..并且通用解决方案类似。
((ViewModel.PrintSelectViewModel) this.DataContext).PreviewReportsCommand.Execute(null);
答案 2 :(得分:1)
MVVM light toolkit =&gt; EventToCommand:)
http://galasoft.ch/mvvm/resources/Manual/GalaSoft.MvvmLight.Binaries.V3.Alpha3.zip