MVVM模式 - 如何在后面的代码中触发命令或命令参考

时间:2010-01-19 08:35:10

标签: wpf mvvm

我一直在Stack Overflow上寻找这个,但是找不到答案,所以我希望这不是重复......

我有一个使用MVVM模式的应用程序,我喜欢保持干净,但有时候一些代码背后的代码似乎比XAML解决方案更清晰。

我想知道是否可以从代码隐藏中触发命令。

我已经在我的视图中设置了一个命令参考(见下文)

<local:CommandReference 
                 x:Key="CommandReferencePreviewReportsCommand" 
                 Command="{Binding PreviewReportsCommand}" />

我想要做的是能够从视图后面的c#代码触发命令引用或ICommand。有谁知道怎么做?

3 个答案:

答案 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)