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

转:http://www.cnblogs.com/mantian/p/3713524.html

 

将所有的事件,属性,都映射到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>
复制代码

你可能感兴趣的:(combobox)