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