Fire Prism命令手动

时间:2013-06-25 01:49:14

标签: c# .net command windows-store-apps prism

我使用Prism设置了一个Windows应用商店应用。我需要使用命令来通知viewmodel一个动作,但在这种情况下我不能使用按钮。有没有办法从视图中触发viewmodel中定义的命令,但是以不可知的方式,以便视图/视图模型没有紧密耦合?

2 个答案:

答案 0 :(得分:2)

if(command.CanExecute(parameter))
    command.Execute(parameter);

答案 1 :(得分:1)

如果您想将调用命令置于代码中,您可以执行Aron建议的操作。

如果你不喜欢代码或者很难有代码,比如DataTemplate,你应该考虑触发命令的条件。如果你的命令是由某个事件触发的,你可以像下面一样使用Prism,你也可以选择一些其他的Prism内置触发器或自己编写触发器。

<i:Interaction.Triggers>
    <i:EventTrigger EventName="FrameworkElement.Loaded">
        <i:InvokeCommandAction Command="{Binding LoadCommand}" />
    </i:EventTrigger>
</i:Interaction.Triggers>

如果您有更复杂的逻辑,则可以使用ICommand DependencyProperty编写行为。将ViewModel上的命令绑定到DependencyProperty并将其消耗在Behavior中。