大家好我正试图在列表框的项目中实现点击效果,但我不断收到此错误:
找不到“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>
你能告诉我这是什么问题吗?我该如何解决?
答案 0 :(得分:2)
Catel中提供了所有行为和触发器的良好列表以及如何使用它们:
https://catelproject.atlassian.net/wiki/pages/viewpage.action?pageId=1409064
它还包括EventToCommand:
https://catelproject.atlassian.net/wiki/display/CTL/EventToCommand
答案 1 :(得分:1)
EventToCommand
是MVVM-Light的一部分......这是MVVM光之书(Laurent Bugnion)的article on MSDN,他谈到了如何使用它。
你也可以查看一个类似的answer here,但我猜你的选择是使用MVVM-Light,如果你想使用它,或者通过他的代码进行排序并实现类似的东西......
答案 2 :(得分:1)
将GalaSoft.MvvmLight
库添加到引用中。然后
使用此xmlns:cmd="clr-namespace:GalaSoft.MvvmLight;assembly=GalaSoft.MvvmLight"
代替xmlns:cmd="http://www.galasoft.ch/mvvmlight"