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 传播它们。
我有一个 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 传播它们。