Question

I began to use MVVM pattern yesterday.But for working with events i needed to install MVVM light toolkit.I did that,and added library to references.At UserControl i announced that library,but when i want to use toolkit whatever i write it doesnt show any suggestions and doesnt accept what i want to write and shows this error "A value of type 'EventToCommand' cannot be added to a collection or dictionary of type 'TriggerActionCollection' "

<EventTrigger RoutedEvent="TextChanged">
   <mvvm:EventToCommand Command="{Binding Test}"/>
</EventTrigger>

`

Was it helpful?

Solution

You have to use it like this ..

Namespace to add :
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"

<i:Interaction.Triggers>
    <i:EventTrigger EventName="Loaded">
        <mvvm:EventToCommand Command="{Binding Path=UserControlLoadedCommand}" />
    </i:EventTrigger>
</i:Interaction.Triggers> 

Dont forget to add a reference to System.Windows.Interactivity to your project

You need To Use PassEventArgsToCommand="True" in

<i:Interaction.Triggers>
    <i:EventTrigger EventName="Loaded">
        <mvvm:EventToCommand Command="{Binding Path=UserControlLoadedCommand}" PassEventArgsToCommand="True" />
    </i:EventTrigger>
</i:Interaction.Triggers> 

And then you can get that at ViewModel ..... you Might Need to use Generic RelayCommand as

RelayCommand<KeyEventArgs> myCommand= new RelayCommand<KeyEventArgs>(Execute,CanExecute)
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top