wpf mvvmlight combobox 选择完跳转指令
时间: 2023-08-19 22:04:08 浏览: 164
可以使用MVVM Light框架中的`RelayCommand`,结合`SelectedItem`属性和`SelectionChanged`事件来实现。具体步骤如下:
1. 在ViewModel中声明一个`RelayCommand`类型的属性,用于绑定ComboBox的选择事件。
```
public RelayCommand<ComboBox> SelectionChangedCommand { get; private set; }
```
2. 在ViewModel的构造函数中初始化该属性,指定其执行方法。
```
SelectionChangedCommand = new RelayCommand<ComboBox>((comboBox) =>
{
// 执行跳转指令
NavigateToPage(comboBox.SelectedItem.ToString());
});
```
3. 在View中将ComboBox的`SelectedItem`属性绑定到ViewModel中的一个字符串属性。
```
<ComboBox ItemsSource="{Binding ComboBoxItems}" SelectedItem="{Binding SelectedItem}" />
```
4. 在View的代码-behind中订阅ComboBox的`SelectionChanged`事件,并调用`RelayCommand`的`Execute`方法触发执行跳转指令。
```
private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var comboBox = sender as ComboBox;
var viewModel = DataContext as MyViewModel;
viewModel.SelectionChangedCommand.Execute(comboBox);
}
```
这样,当ComboBox的选项发生改变时,就会触发ViewModel中的`SelectionChangedCommand`属性绑定的方法,从而执行跳转指令。
阅读全文