在WPF mvvm中捕获控件事件

时间:2018-01-03 09:35:57

标签: wpf mvvm binding

有一个ComboBox,使用CheckBox和TextBlock装饰项目,如下所示:

<ComboBox ItemsSource="{Binding AllList}" >
                                <ComboBox.ItemTemplate>
                                    <DataTemplate>
                                        <StackPanel Orientation="Horizontal">
                                            <CheckBox x:Name="chk" IsChecked="{Binding IsSelected}" Width="20"  >
                                                <i:Interaction.Triggers>
                                                    <i:EventTrigger EventName="Checked">
                                                       <i:InvokeCommandAction Command="{Binding IsCheckedCommand}" />
                                                    </i:EventTrigger>
                                                </i:Interaction.Triggers>
                                            </CheckBox>
                                            <TextBlock Text="{Binding Number}" Width="100" />
                                        </StackPanel>
                                    </DataTemplate>
                                </ComboBox.ItemTemplate>
</ComboBox>

在ViewModel中我们有:

RelayCommand<EventArgs> isCheckedCommand = new RelayCommand<EventArgs>(IsCheckedAction);
public RelayCommand<EventArgs> IsCheckedCommand
        {
            get { return isCheckedCommand; }
        }

private void IsCheckedAction(EventArgs obj)
        {
        }
public static ObservableCollection<Groups> allList { get; set; }
    public ObservableCollection<Groups> AllList
    {
        get { return allList ; }
        set
        {
            allList = value;
            OnPropertyChanged("AllList");
        }
    }

但事件未在ViewModel中触发并捕获。 任何人都可以指出是什么原因?

0 个答案:

没有答案