在MVVM架构下,通常对于按钮采用Command方式进行绑定,但是这种简单的绑定方式仅限点击按钮触发命令。因此,当需要进行抬起或按下操作时,需要进行额外的操作。
用到的方式:Microsoft XAML Behaviors
在前端View代码中添加:
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
在需要按下动作的按钮上,编写如下代码:
<i:Interaction.Triggers>
<i:EventTrigger EventName="PreviewMouseLeftButtonDown">
<i:InvokeCommandAction Command="{Binding MovePositiveCommand}" />
</i:EventTrigger>
<i:EventTrigger EventName="PreviewMouseLeftButtonUp">
<i:InvokeCommandAction Command="{Binding StopCommand}" />
</i:EventTrigger>
</i:Interaction.Triggers>
这里用到了EventTriggers:监听源上指定事件并在事件触发时触发的触发器。设定了一个PreviewMouseLeftButtonDown触发器,鼠标左键按下时,触发MovePositiveCommand命令。当鼠标抬起时,触发StopCommand。
