手动发射棱镜命令

本文关键字:命令 棱镜 发射 | 更新日期: 2023-09-27 18:19:41

我已经使用Prism设置了一个windows商店应用程序。我需要使用一个命令来通知视图模型一个操作,但在这种情况下我不能使用按钮。有没有一种方法可以从视图中激发在视图模型中定义的命令,但要以不可知的方式,这样视图/视图模型就不会紧密耦合?

手动发射棱镜命令

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

如果您想将调用命令放在代码后面,可以按照Aron的建议执行。

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

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

如果您有更复杂的逻辑,可以使用ICommandDependencyProperty编写Behavior。将ViewModel上的命令绑定到DependencyProperty,并在Behavior中使用它。