2

我昨天开始使用 MVVM 模式。但是为了处理事件,我需要安装 MVVM 轻工具包。我这样做了,并将库添加到引用中。在 UserControl 我宣布了该库,但是当我想使用工具包时,无论我写什么都不会显示任何建议并且不接受我想写的内容并显示此错误“无法将 'EventToCommand' 类型的值添加到 'TriggerActionCollection' 类型的集合或字典中”

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

`

4

1 回答 1

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)
于 2011-11-15T06:06:37.653 回答