Intellisense не работает для легкого инструментария MVVM - PullRequest
2 голосов
/ 15 ноября 2011

Вчера я начал использовать шаблон MVVM. Но для работы с событиями мне нужно было установить легкий инструментарий MVVM. Я сделал это и добавил библиотеку к ссылкам. В UserControl я объявил эту библиотеку, но когда я хочу использовать инструментарий, то я написать, что он не показывает никаких предложений и не принимает то, что я хочу написать, и показывает эту ошибку "Значение типа 'EventToCommand' не может быть добавлено в коллекцию или словарь типа 'TriggerActionCollection'"

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

`

1 Ответ

4 голосов
/ 15 ноября 2011

Вы должны использовать это как это ..

Пространство имен для добавления:
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)
...