У меня есть триггер интерактивности колесика мыши на 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 присутствует, потому что я пытаюсь переключить его на другую команду, которая будет определять, прокручивает ли пользователь вверх или вниз. Проблема в том, что после долгих поисков я все еще не могу понять, как структурировать команду для работы с аргументами. Вот что у меня есть, но не работает:
_scrollWheelCommand = new RelayCommand<MouseEventArgs>(ScrollWheel, can => true);
а затем это объявление ScrollWheel:
public void ScrollWheel(MouseEventArgs args)
Проблема в том, что я никогда не добираюсь до этого метода, когда устанавливаю точку останова. Я также не знаю, правильно ли я направляю аргументы.
Обновлено: О, и я не получаю ошибок.





Попробуйте использовать MouseWheelEventArgs вместо MouseEventArgs при объявлении вашего RelayCommand. Тип параметра должен соответствовать событию, чтобы это работало.
В чем разница между
_previousWeekCommandи_scrollWheelCommand? Он перестает работать, когда вы меняете аргумент типа для_previousWeekCommand?