WPF - MVVM - 如何将ComboBox的Selectchange事件binding到ViewModel

将所有的事件,属性,都映射到ViewModel中。好处多多,以后开发尽量用这种模式。

解决方法:

使用System.Windows.Interactivity.dll,添加该dll到项目引用

?
1
xmlns:i= "clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"

ComboBox映射的代码:

复制代码
<ComboBox VerticalAlignment="Center" HorizontalAlignment="Left" MinWidth="120" Margin="10,0,0,0"
                              x:Name="cboTest" 
                              DisplayMemberPath="FamilyName"  
                              SelectedValuePath="IdFamily" 
                              IsReadOnly="True"
                              ItemsSource="{Binding ListFamily}"
                              SelectedValue="{Binding Path=ViewModel.SelectedFamilyNameID, Mode=TwoWay, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}"
                              Validation.ErrorTemplate="{x:Null}"
                              Visibility="{Binding ComboBoxVisibility}"
                              >
                            <i:Interaction.Triggers>
                                <i:EventTrigger EventName="SelectionChanged">
                                    <i:InvokeCommandAction Command="{Binding FamilySelectionChangedCommand}"   
                                                       CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}},Path=DataContext}"/>
                                </i:EventTrigger>
                            </i:Interaction.Triggers>
                        </ComboBox>
复制代码

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值