MVVM EventToCommand not found

本文关键字:found not EventToCommand MVVM | 更新日期: 2023-09-27 18:17:41

大家好,我想在列表框的项目中实现一个点击效果,但我一直得到这个错误:

类型'cmd:EventToCommand'未找到。确认没有遗漏程序集引用,并且所有引用的程序集都已生成。

<catel:UserControl
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         xmlns:catel="http://catel.codeplex.com"
         xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
         xmlns:cmd="http://www.galasoft.ch/mvvmlight"
         mc:Ignorable="d" 
         d:DesignHeight="300" d:DesignWidth="300">

以及我尝试实现on click方法的代码:

<Grid>
    <ItemsControl ItemsSource="{Binding Source={StaticResource cvsRoutes}}">
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <Expander Header="{Binding Name}" MinHeight="50">
                    <ListBox>
                        <i:Interaction.Triggers>
                            <i:EventTrigger EventName="PreviewMouseLeftButtonDown">
                                <cmd:EventToCommand Command="{Binding PreviewMouseLeftButtonDownCommand}" PassEventArgsToCommand="True"/>
                            </i:EventTrigger>
                        </i:Interaction.Triggers>
                        <TextBlock Text="Something" >
                        <i:Interaction.Triggers>
                            <i:EventTrigger EventName="KeyUp">
                                <cmd:EventToCommand Command="{Binding KeyUpCommand}" PassEventArgsToCommand="True"/>
                            </i:EventTrigger>
                        </i:Interaction.Triggers>
                        </TextBlock>
                        <TextBlock Text="Something" />
                        <TextBlock Text="Something" />
                        <TextBlock Text="Something" />
                        <TextBlock Text="Something" />
                    </ListBox>
                </Expander>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>
</Grid>

你能告诉我是什么问题,我怎么解决它吗?

MVVM EventToCommand not found

这里有一个很好的列表,列出了所有在Catel中可用的行为和触发器,以及如何使用它们:

https://catelproject.atlassian.net/wiki/pages/viewpage.action?pageId=1409064

它还包括EventToCommand:

https://catelproject.atlassian.net/wiki/display/CTL/EventToCommand

EventToCommand是MVVM-Light的一部分…这是MVVM light的作者Laurent Bugnion在MSDN上的一篇文章,他谈到了如何使用它。

你也可以在这里看到类似的答案,但我猜你的选择要么是使用MVVM-Light,如果你想使用它,或者通过他的代码排序并实现类似的东西自己…

添加GalaSoft.MvvmLight库到引用。

xmlns:cmd="clr-namespace:GalaSoft.MvvmLight;assembly=GalaSoft.MvvmLight"代替xmlns:cmd="http://www.galasoft.ch/mvvmlight"