Есть ли способ использовать EventToCommand MVVMLight в Microsoft.Xaml.Behaviors.Wpf? - PullRequest
1 голос
/ 14 января 2020

Я использовал библиотеку System. Windows .Interactivity.WPF с MVVM Light.

Я удалил библиотеку System. Windows .Interactivity.WPF, поскольку дата ее публикации устарела. И я установил библиотеку Microsoft.Xaml.Behaviors.Wpf и обновил информацию, связанную с контентом.

Работа прошла гладко, за исключением одного. Проблема заключается в том, что если я использую взаимодействие Microsoft.Xaml.Behaviors.Wpf с EventToCommand MVVMLight, как показано ниже, компилятор показывает ошибку.

 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>

Сообщение об ошибке: «ошибка MC3074: в пространстве имен XML нет тега EventToCommand http://www.galasoft.ch/mvvmlight '."

Если я использую Тогда CallMethodAction или InvokeCommand Microsoft.Xaml.Behaviors.Wpf работает хорошо, но мне приходится использовать EventToCommand из-за передачи параметра в Команду.

Что мне нужно сделать, чтобы решить эту проблему? Может кто-нибудь сказать мне решение?

Спасибо за чтение.

1 Ответ

1 голос
/ 14 января 2020

Краткий ответ: Нет.

Класс EventToCommand в MvvmLight наследуется от System.Windows.Interactivity.TriggerAction<T> и не может быть добавлен к свойству Actions Microsoft.Xaml.Behaviors.EventTrigger.

варианты:

  1. Вернитесь к использованию System.Windows.Interactivity.dll.
  2. Создайте свой собственный тип EventToCommand, который наследуется от Microsoft.Xaml.Behaviors.TriggerAction<T>. Вы можете начать с существующей реализации на GitHub .
...