Wpf DataGridComboxColumn中的EventSetter引发NullReferenceException

Wpf DataGridComboxColumn中的EventSetter引发NullReferenceException,wpf,mvvm,datagrid,Wpf,Mvvm,Datagrid,我正在尝试将SelectionChanged绑定到下面代码中的命令 <EventSetter Event="SelectionChanged" Handler="{Binding MyCommand}" /> EventSetter希望您从codebehind文件(xaml.cs)中指示现有事件。它不适用于绑定。因此,在MainWindow.xaml.cs内创建相应的事件处理程序,并在EventSetter中指示它,或者使用来自Blend、MvvmLight的Interaction

我正在尝试将SelectionChanged绑定到下面代码中的命令

<EventSetter Event="SelectionChanged" Handler="{Binding MyCommand}" />

EventSetter希望您从codebehind文件(xaml.cs)中指示现有事件。它不适用于绑定。因此,在MainWindow.xaml.cs内创建相应的事件处理程序,并在EventSetter中指示它,或者使用来自Blend、MvvmLight的Interaction.Triggers

<Window
 xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" 
 xmlns:command="http://www.galasoft.ch/mvvmlight" >
 <i:Interaction.Triggers>
          <i:EventTrigger EventName="Loaded">
            <command:EventToCommand
              Command="{Binding MyCommand}"
              PassEventArgsToCommand="False" />
          </i:EventTrigger>
 </i:Interaction.Triggers>
</Window>


谢谢。您能告诉我如何从MainWindow的代码中调用该命令吗?好的,您可以将this.DataContext强制转换为您的类型,并从您的ViewModel中调用该命令,如您所示。但这是一个糟糕的设计,正确的方法是使用EventToCommand。
<Window
 xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" 
 xmlns:command="http://www.galasoft.ch/mvvmlight" >
 <i:Interaction.Triggers>
          <i:EventTrigger EventName="Loaded">
            <command:EventToCommand
              Command="{Binding MyCommand}"
              PassEventArgsToCommand="False" />
          </i:EventTrigger>
 </i:Interaction.Triggers>
</Window>