如何在mvvm中使用Composite命令

时间:2016-07-28 09:09:00

标签: c# wpf xaml mvvm prism

简介 我正在使用MVVM-Light应用程序

使用WPF

目标

我必须从同一个事件中调用两个命令,这是否可以使用MVVM。?

Xaml看起来像这样

 <i:Interaction.Triggers>
    <i:EventTrigger EventName="Loaded">
        <command:EventToCommand Command="{Binding Command1}" PassEventArgsToCommand="False" />
        <command:EventToCommand Command="{Binding Command2}" PassEventArgsToCommand="False" />
    </i:EventTrigger>
</i:Interaction.Triggers>

问题

  

当挂钩两个命令时,在触发事件时只调用其中一个命令。

Q1如何在事件中调用两个命令?

  

我听说过Composite commands in PRISM

例如,在Stock Trader Reference实施(Stock Trader RI)中使用CompositeCommand类,以实现买/卖中“全部提交”按钮所代表的SubmitAllOrders命令视图。 当用户点击“全部提交”按钮时,将执行各个买/卖交易定义的每个SubmitCommand


Q2 MVVM中有这样的东西吗?

1 个答案:

答案 0 :(得分:1)

尝试使用2个事件触发器:

<i:Interaction.Triggers>
    <i:EventTrigger EventName="Loaded">
        <command:EventToCommand Command="{Binding Command1}" PassEventArgsToCommand="False" />
    </i:EventTrigger>
    <i:EventTrigger EventName="Loaded">
        <command:EventToCommand Command="{Binding Command2}" PassEventArgsToCommand="False" />
    </i:EventTrigger>
</i:Interaction.Triggers>