สาเหตุบางประการที่ฉันพบว่าเหตุการณ์ที่เลือกแถวไม่ทำงาน 
- สไตล์ถูกตั้งค่าสำหรับ DataGridCell 
- ใช้คอลัมน์ Templated 
- ทริกเกอร์ถูกตั้งค่าที่ DataGridRow 
นี่คือสิ่งที่ช่วยฉัน การตั้งค่ารูปแบบสำหรับ DataGridCell
<Style TargetType="{x:Type DataGridCell}">
  <Style.Triggers>
    <Trigger Property="IsSelected" Value="True">
      <Setter Property="Background" Value="Green"/>
      <Setter Property="Foreground" Value="White"/>
    </Trigger>
  </Style.Triggers> 
</Style>
และเนื่องจากฉันใช้คอลัมน์เทมเพลตที่มีป้ายกำกับอยู่ข้างในฉันจึงผูกคุณสมบัติ Foreground กับคอนเทนเนอร์ Foreground โดยใช้การเชื่อม RelativeSource:
<DataGridTemplateColumn>
  <DataGridTemplateColumn.CellTemplate>
    <DataTemplate>
      <Label Content="{Binding CategoryName,
                 Mode=TwoWay,
                 UpdateSourceTrigger=LostFocus}"
             Foreground="{Binding Foreground,
                 RelativeSource={RelativeSource Mode=FindAncestor,
                     AncestorLevel=1, 
                     AncestorType={x:Type DataGridCell}}}"
             Width="150"/>
    </DataTemplate>
  </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>