有没有办法在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中的EventToCommand
class继承自System.Windows.Interactivity.TriggerAction<T>
,不能添加到Microsoft.Xaml.Behaviors.EventTrigger
的Actions
属性中。
所以你的选择是:
- 恢复使用
System.Windows.Interactivity.dll
。
- 创建您自己的
EventToCommand
继承自 Microsoft.Xaml.Behaviors.TriggerAction<T>
的类型。您可以从 GitHub. 上的现有实施开始
我在 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中的EventToCommand
class继承自System.Windows.Interactivity.TriggerAction<T>
,不能添加到Microsoft.Xaml.Behaviors.EventTrigger
的Actions
属性中。
所以你的选择是:
- 恢复使用
System.Windows.Interactivity.dll
。 - 创建您自己的
EventToCommand
继承自Microsoft.Xaml.Behaviors.TriggerAction<T>
的类型。您可以从 GitHub. 上的现有实施开始