有没有办法在Microsoft.Xaml.Behaviors.Wpf中使用MVVMLight的EventToCommand?

Is there a way to use the EventToCommand of the MVVMLight in the Microsoft.Xaml.Behaviors.Wpf?

我在 MVVM Light 中使用了 System.Windows.Interactivity.WPF 库。

我删除了 System.Windows.Interactivity.WPF 库,因为它的发布日期是旧的。我安装了 Microsoft.Xaml.Behaviors.Wpf 库并更新了相关内容。

工作很顺利,除了一个。 问题是,如果我使用 Microsoft.Xaml.Behaviors.Wpf 与 MVVMLight 的 EventToCommand 的交互,编译器会显示错误。

 xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
 xmlns:mvvm="http://www.galasoft.ch/mvvmlight"

<i:Interaction.Triggers>
    <i:EventTrigger EventName="SelectedItemChanged">
        <mvvm:EventToCommand Command="{Binding CPUSelectedCommand}"
                         PassEventArgsToCommand="True"
                         EventArgsConverter="{localConverters:SelectedItemConverter}" />
    </i:EventTrigger>
</i:Interaction.Triggers>

错误信息是"error MC3074: There is not EventToCommand tag in the XML namespace 'http://www.galasoft.ch/mvvmlight'."

如果我使用 CallMethodAction 或 InvokeCommand Microsoft.Xaml.Behaviors.Wpf 那么效果很好,但我必须使用 EventToCommand 因为要将参数传递给命令。

我应该怎么做才能解决这个问题? 有人可以告诉我解决方案吗?

感谢阅读。

简答:否

MvvmLight中的EventToCommandclass继承自System.Windows.Interactivity.TriggerAction<T>,不能添加到Microsoft.Xaml.Behaviors.EventTriggerActions属性中。

所以你的选择是:

  1. 恢复使用 System.Windows.Interactivity.dll
  2. 创建您自己的 EventToCommand 继承自 Microsoft.Xaml.Behaviors.TriggerAction<T> 的类型。您可以从 GitHub.
  3. 上的现有实施开始