WPF - MVVM - 如何将ComboBox的Selectchange事件binding到ViewModel
时间: 2024-03-29 09:38:50 浏览: 230
mvvmlight demo.zip
要将ComboBox的Selectchange事件绑定到ViewModel,可以使用以下步骤:
1. 在ViewModel中创建一个属性来存储ComboBox中选择的值,例如:
```
private string _selectedItem;
public string SelectedItem
{
get { return _selectedItem; }
set
{
_selectedItem = value;
OnPropertyChanged(nameof(SelectedItem));
}
}
```
2. 在View中将ComboBox的ItemsSource和SelectedItem属性绑定到ViewModel中的相应属性,例如:
```
<ComboBox ItemsSource="{Binding Items}" SelectedItem="{Binding SelectedItem, Mode=TwoWay}" />
```
3. 在View中使用Interactivity库将ComboBox的SelectionChanged事件与ViewModel中的Command绑定,例如:
```
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
...
<ComboBox ItemsSource="{Binding Items}" SelectedItem="{Binding SelectedItem, Mode=TwoWay}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<i:InvokeCommandAction Command="{Binding ComboBoxSelectionChangedCommand}" />
</i:EventTrigger>
</i:Interaction.Triggers>
</ComboBox>
```
4. 在ViewModel中创建一个Command来处理ComboBox的SelectionChanged事件,并在Command中更新SelectedItem属性的值,例如:
```
public ICommand ComboBoxSelectionChangedCommand => new RelayCommand(() =>
{
// 处理ComboBox的SelectionChanged事件
});
```
这样就可以将ComboBox的Selectchange事件绑定到ViewModel中,实现MVVM模式下的数据绑定和事件处理。
阅读全文