WPF使用MVVM绑定事件
时间: 2024-03-01 17:19:43 浏览: 153
在WPF中使用MVVM绑定事件的方法有两种:Command和EventToCommand。
1. Command
Command是一种实现了ICommand接口的对象,可以在ViewModel中定义并绑定到View中的控件上,当控件触发事件时,Command就会执行相应的操作。
例如,在ViewModel中定义一个Command:
```
public ICommand MyCommand { get; set; }
public MyViewModel()
{
MyCommand = new RelayCommand(Execute);
}
private void Execute()
{
// 执行操作
}
```
然后在View中将Command绑定到Button的Command属性上:
```
<Button Content="Click me" Command="{Binding MyCommand}" />
```
这样,当Button被点击时,MyCommand所代表的操作就会被执行。
2. EventToCommand
EventToCommand是一种附加属性,可以将控件触发的事件转化为Command,然后在ViewModel中执行相应的操作。
例如,在View中使用EventToCommand将Button的Click事件转化为Command:
```
<Button Content="Click me">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<i:InvokeCommandAction Command="{Binding MyCommand}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
```
这里使用了i命名空间下的Interaction类库,需要在XAML文件中添加以下命名空间声明:
```
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
```
这样,当Button被点击时,MyCommand所代表的操作就会被执行。
阅读全文