MVVMLight EventToCommand 和传递事件参数

MVVMLight EventToCommand and passing event arguments

我在 StackPanel 上有一个鼠标滚轮交互触发器:

 <i:Interaction.Triggers>
         <i:EventTrigger EventName="MouseWheel">
               <cmd:EventToCommand Command="{Binding DataContext.PreviousWeekCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=UserControl}}"
                                             PassEventArgsToCommand="True"/>
         </i:EventTrigger>
</i:Interaction.Triggers>

它与 PreviousWeekCommand 配合使用效果很好,如下(片段):

_previousWeekCommand = new RelayCommand<object>(param => ShiftDays(-7), param => (true));

PassEventArgsToCommand 在那里,因为我正在尝试将其切换到另一个命令,该命令将检测用户是否向上或向下滚动。问题是,经过大量搜索,我仍然无法弄清楚如何构建处理 args 的命令。这是我拥有的,但它不起作用:

_scrollWheelCommand = new RelayCommand<MouseEventArgs>(ScrollWheel, can => true);

然后这是 ScrollWheel 声明:

public void ScrollWheel(MouseEventArgs args)

问题是,当我断点它时,我从来没有到达这个方法。我也不知道我是否以正确的方式传递参数。

编辑:哦,我没有收到任何错误。

尝试在声明 RelayCommand 时使用 MouseWheelEventArgs 而不是 MouseEventArgs。参数类型应与事件相匹配才能正常工作。