3

我正在使用这种方式从 XAML 中捕获事件:

<i:Interaction.Triggers>
    <i:EventTrigger EventName="MouseWheel">
        <ei:CallMethodAction MethodName="ChangeValue" TargetObject="{Binding DataContext}" />
    </i:EventTrigger>
</i:Interaction.Triggers>

这种方式效果很好,我可以ChangeValue在我的代码中触发我的函数。但我想知道我的ChangeValue功能上的鼠标滚轮方向(向上或向下)。有没有办法做到这一点?

4

2 回答 2

2

您可以使用MVVM LightEventToCommand它也有一个PassEventArgsToCommand属性。然后,代替方法,定义一个接收事件 args 作为参数的命令。您的 XAML 应如下所示:

<i:Interaction.Triggers>
    <i:EventTrigger EventName="MouseWheel">
        <cmd:EventToCommand Command="{Binding ChangeValueCommand}"
                            PassEventArgsToCommand="True" />
    </i:EventTrigger>
</i:Interaction.Triggers>
于 2012-11-16T18:29:54.700 回答
0

我使用了这里描述的技术:

http://blog.roboblob.com/2010/01/26/binding-ui-events-from-view-to-commands-in-viewmodel-in-silverlight-4/

那里的博文非常清晰且易于理解,特别是如果您已经有一些 WPF/Silverlight 经验。我在实现这个版本的 Event->Command 模式时没有遇到任何问题。

此功能也可“内置”到诸如 MVVMLight 之类的框架中。

本质上,您为要使用的每个事件创建一个命令 (ICommand)。

于 2012-11-16T18:25:27.360 回答