我昨天开始使用MVVM模式。但是为了处理我需要安装MVVM光工具包的事件。我做了那个,并添加了库来引用。在UserControl我宣布了库,但是当我想使用工具包无论我写它没有显示任何建议,也不接受我想写的内容并显示此错误“类型'EventToCommand'的值无法添加到'TriggerActionCollection'类型的集合或字典中”
<EventTrigger RoutedEvent="TextChanged">
<mvvm:EventToCommand Command="{Binding Test}"/>
</EventTrigger>
`
答案 0 :(得分:4)
你必须像这样使用..
要添加的命名空间:
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>
不要忘记在项目中添加对System.Windows.Interactivity
的引用
您需要在
中使用PassEventArgsToCommand="True"
<i:Interaction.Triggers>
<i:EventTrigger EventName="Loaded">
<mvvm:EventToCommand Command="{Binding Path=UserControlLoadedCommand}" PassEventArgsToCommand="True" />
</i:EventTrigger>
</i:Interaction.Triggers>
然后你可以在ViewModel上得到它.....你可能需要使用Generic RelayCommand
作为
RelayCommand<KeyEventArgs> myCommand= new RelayCommand<KeyEventArgs>(Execute,CanExecute)