MVVM下的按钮抬起/按下实现

katekate 发布于 28 天前 42 次阅读


在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。

此作者没有提供个人介绍。
最后更新于 2026-01-05