Użyłem System.Windows.interactivity.WPF biblioteki z światłem MVVM.

Usunąłem System.Windows.interactivity.WPF biblioteka, ponieważ data publikacji jest stara. I zainstalowałem bibliotekę Microsoft.xaml.Behaviors.WPF i zaktualizowane związane z treścią.

Praca poszła płynnie z wyjątkiem jednego. Problem polega na tym, że jeśli korzystam z interakcji Microsoft.xaml.Behaviors.WPF z EventToCommand o mvvmlight jak poniżej, kompilator pokazuje błąd.

 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>

Komunikat o błędzie jest "Błąd MC3074: Nie ma znacznika EventToCommand w XML" http: //www.galasoft. cH / mvvmlight "."

Jeśli korzystam z CallMethodaction lub InvokeCommand Microsoft.xaml.Behaviors.wpf, a następnie działa dobrze, ale muszę użyć EventTocommand z powodu zdarzenia parametru do polecenia.

Co powinienem zrobić, aby rozwiązać ten problem? Czy ktoś mógł mi powiedzieć rozwiązanie?

Dziękuje za przeczytanie.

3
jjw 14 styczeń 2020, 10:49

1 odpowiedź

Najlepsza odpowiedź

Krótka odpowiedź: nie.

Klasa EventToCommand w MVVmlight dziedziczy z System.Windows.Interactivity.TriggerAction<T> i nie można go dodać do właściwości Actions Microsoft.Xaml.Behaviors.EventTrigger.

Więc twoje opcje są:

  1. Wróć do używania System.Windows.Interactivity.dll.
  2. Utwórz własny typ EventToCommand, który dziedziczy z Microsoft.Xaml.Behaviors.TriggerAction<T>. Możesz zacząć od istniejącego wdrożenia na Github.
3
mm8 14 styczeń 2020, 15:25