StackPanel 的 MouseWheel EventToCommand

MouseWheel EventToCommand for StackPanel

我有一个 StackPanel,里面有一个 Listview。 我希望能够在 window 内滚动以更改 selectedItem。

澄清一下; 我想在滚动鼠标滚轮时更改我的 ViewModels SelectedItem。

我找不到通过 EventToCommand 将我的命令绑定到事件的方法

我认为可以通过

来实现
<StackPanel>
    <i:EventTrigger EventName="MouseWheel">
        <cmd:EventToCommand PassEventArgsToCommand="True" 
              Command="{Binding MouseScrollCommand}">
        </cmd:EventToCommand >
    </i:EventTrigger>
    <ListView/>
</StackPanel>

但这让我出错,指出事件触发器只能分配给 UIElement。

然后我在 ListView 内部尝试 - 但也没有用。

如何将事件(带参数)绑定到滚轮事件?

我认为您快完成了,但是您需要将 EventTrigger 包装在 System.Windows.Interactivity Interaction class:

<StackPanel>
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="MouseWheel">
            <cmd:EventToCommand PassEventArgsToCommand="True" 
                  Command="{Binding MouseScrollCommand}">
            </cmd:EventToCommand >
        </i:EventTrigger>
    </i:Interaction.Triggers>
    <ListView/>
</StackPanel>

您应该会发现会引发事件,并调用您的命令。

交互 class 处理关联对象上的事件,并通过 EventTriggers 传播它们。