我将这个xaml附加到网格上(并且我已经在堆栈面板上尝试过了):
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseWheel">
<i:InvokeCommandAction Command="{Binding PreviousWeekCommand}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
我添加了名称空间:
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
,并在我的解决方案中引用了交互dll。这是我第一次尝试使用互动式触发器,因此我不确定为什么它不起作用-也就是说,鼠标滚轮对我滚动都没有任何作用。我知道该命令有效,因为它与正常工作的按钮的命令相同。我没有错误,也没有使用任何mvvm框架或任何东西。我错过了一步吗?
答案 0 :(得分:1)
发布的代码可以正常工作。出现问题的原因应该是使用触发器的DataContext
元素没有PreviousWeekCommand
命令。您可以使用RelativeSource
<i:InvokeCommandAction Command="{Binding DataContext.PreviousWeekCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=ControlTypeWhereDataContextHasPreviousWeekCommand}}"/>