Data binding 绑定组合框选择更改为命令MVVM
情况:Data binding 绑定组合框选择更改为命令MVVM,data-binding,mvvm,combobox,command,Data Binding,Mvvm,Combobox,Command,情况: 1组合框(A)绑定到具有模型实体类型的ObservableCollection属性的VM 1其他组合框(B)也如刚才所述绑定到另一个模型实体类型 我的VM有一个命令(Josh Smith编写的RelayCommand),它将填充绑定到的属性组合框(B) 问题: Combobox没有要绑定的命令 我不应该打破MVVM的方式 …您可以添加附加到组合框的自定义行为,并订阅已更改的选择 使用System.Windows.Input; 使用Windows.UI.Xaml; 使用Windows
- 1组合框(A)绑定到具有模型实体类型的ObservableCollection属性的VM
- 1其他组合框(B)也如刚才所述绑定到另一个模型实体类型
- 我的VM有一个命令(Josh Smith编写的RelayCommand),它将填充绑定到的属性组合框(B)
- Combobox没有要绑定的命令
- 我不应该打破MVVM的方式
…您可以添加附加到组合框的自定义行为,并订阅已更改的选择
使用System.Windows.Input; 使用Windows.UI.Xaml; 使用Windows.UI.Xaml.Controls; 使用Microsoft.Xaml.Interactivity; 命名空间StackOverflowWin81 { 公共类SelectionChangedCommand行为:DependencyObject,IBehavior { 专用组合框_组合框; 公共无效附加(DependencyObject associatedObject) { //设置附着对象 _comboBox=关联对象作为comboBox; //订阅活动 _comboBox.SelectionChanged+=\u comboBox\u SelectionChanged; } 私有void\u组合框\u选择已更改(对象发送者,选择更改已更改) { //执行命令 if(this.Command.CanExecute(null)) { Command.Execute(null); } } 公共图书馆 { _comboBox.SelectionChanged-=\u comboBox\u SelectionChanged; } public DependencyObject AssociatedObject{get;private set;} 公共静态只读DependencyProperty CommandProperty=DependencyProperty.Register( “命令”、类型化(ICommand)、类型化(SelectionChangedCommand行为)、新属性元数据(默认值(ICommand)); 公共ICommand命令 { 获取{return(ICommand)GetValue(CommandProperty);} set{SetValue(CommandProperty,value);} } } }