WPF的事件绑定范例(Mvvm,传参写法)

本文介绍了如何在WPF应用中使用i:Interaction.Triggers扩展MVVM模式,以绑定多种事件,如PreviewMouseDown和PreviewMouseUp。通过安装MvvmLight库并引用interactivity.dll,可以在XAML中直接绑定命令到这些事件,从而在ViewModel中处理事件逻辑。示例展示了如何在按钮上绑定两个事件,并分别调用不同的RelayCommand。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Command属性只能绑定特定事件,例如按钮控件,绑定的是点击事件。但是事件五花八门,MouseDown,MouseUp等。只有Command,满足不了需求。所以使用了i:Interaction.Triggers。
第一步,在NuGet包下载安装好MvvmLight(它里面包含了Blend的interactivity.dll)
第二步,在Window.xmal文件中添加引用

xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"

第三步,绑定事件

<Button Height="30" Width="80" Content="伺服点动">
	<i:Interaction.Triggers>
		<i:EventTrigger EventName="PreviewMouseDown">
			<i:InvokeCommandAction Command="{Binding JogMouseDownCommand}" CommandParameter="Positive"/>
		</i:EventTrigger>
		<i:EventTrigger EventName="PreviewMouseUp">
			<i:InvokeCommandAction Command="{Binding JogMouseUpCommand}"/>
		</i:EventTrigger>
	</i:Interaction.Triggers>
</Button>

ViewModel代码范例:

using GalaSoft.MvvmLight.Command;
using System.Windows.Input;

namespace WpfApp1
{
    internal class ViewModel
    {
        public ICommand JogMouseDownCommand { get; set; }
        public ICommand JogMouseUpCommand { get; set; }
        public ViewModel()
        {
            JogMouseDownCommand = new RelayCommand<string>(Jog_MouseDown);
            JogMouseUpCommand = new RelayCommand(Jog_MouseUp);
        }
        private void Jog_MouseDown(string direction)
        {
			//传参的写法
        }
        private void Jog_MouseUp()
        {
			//不传参的写法
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

C#气氛组队员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值