我正在使用这种方式从XAML中捕获事件:
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseWheel">
<ei:CallMethodAction MethodName="ChangeValue" TargetObject="{Binding DataContext}" />
</i:EventTrigger>
</i:Interaction.Triggers>
这种方式效果很好,我可以在我的代码中触发ChangeValue
函数。
但我想知道我的ChangeValue
函数上的鼠标滚轮方向(向上或向下)。
有没有办法做到这一点?
答案 0 :(得分:2)
您可以使用MVVM Light的EventToCommand
,其PassEventArgsToCommand
属性。然后,定义一个接收事件args作为参数的命令,而不是方法。你的XAML应该是这样的:
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseWheel">
<cmd:EventToCommand Command="{Binding ChangeValueCommand}"
PassEventArgsToCommand="True" />
</i:EventTrigger>
</i:Interaction.Triggers>
答案 1 :(得分:0)
我使用了这里描述的技术:
在那里发布的博客非常清晰易懂,特别是如果您已经拥有一些WPF / Silverlight体验。当我实现这个版本的Event-&gt; Command模式时,我没有遇到任何问题。
此功能也可用于“内置”,用于MVVMLight等框架。
实质上,您为要使用的每个事件创建一个Command(ICommand)。