Есть два способа сделать это, ни один не особенно очевиден. Поскольку DataGridRow передает (в коде) свойство фона из родительского DataGrid в локальное значение в строке, как вы заметили, оно будет иметь приоритет над значением, установленным вашим триггером.
Первый (и самый простой) способ - не использовать AlternatingRowBackground или RowBackground, а использовать триггеры для чередования цвета фона, как предложил Val. Его пример не завершен, хотя и не будет работать как есть. Правильный стиль и использование будет следующим. Обратите внимание, что вам нужно установить AlternationCount в DataGrid, иначе строки никогда не получат чередующиеся индексы.
<DataGrid AlternationCount="2">
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Setter Property="Background" Value="White"/>
<Setter Property="FontWeight" Value="Normal"/>
<Style.Triggers>
<Trigger Property="AlternationIndex" Value="1">
<Setter Property="Background" Value="Wheat"/>
<Setter Property="FontWeight" Value="Bold"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="Khaki"/>
</Trigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
</DataGrid>
Второй вариант - использовать VisualStateManager. Это дает вам гораздо больший контроль над различными визуальными состояниями, но это более многословно. К счастью, довольно легко скопировать шаблон элемента управления по умолчанию, используя Blend. Большая часть следующего не изменилась, за исключением раскадровки в состоянии MouseOver, и я установил фон для selectedScrollingGrid.
Извините за завертывание, но, как я уже сказал, это немного более многословно.
<DataGrid AlternationCount="2" AlternatingRowBackground="Wheat">
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="DataGridRow">
<Border x:Name="DGR_Border"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
SnapsToDevicePixels="True">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal"/>
<VisualState x:Name="Normal_AlternatingRow"/>
<VisualState x:Name="Unfocused_Editing"/>
<VisualState x:Name="Normal_Editing"/>
<VisualState x:Name="Unfocused_Selected"/>
<VisualState x:Name="Normal_Selected"/>
<VisualState x:Name="MouseOver_Unfocused_Editing"/>
<VisualState x:Name="MouseOver_Editing"/>
<VisualState x:Name="MouseOver_Unfocused_Selected"/>
<VisualState x:Name="MouseOver_Selected"/>
<VisualState x:Name="MouseOver">
<Storyboard Storyboard.TargetName="Highlight">
<ColorAnimation Duration="0" Storyboard.TargetProperty="Color" To="Khaki"/>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<SelectiveScrollingGrid x:Name="selectiveScrollingGrid">
<SelectiveScrollingGrid.Background>
<SolidColorBrush x:Name="Highlight" Color="Transparent"/>
</SelectiveScrollingGrid.Background>
<SelectiveScrollingGrid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</SelectiveScrollingGrid.ColumnDefinitions>
<SelectiveScrollingGrid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</SelectiveScrollingGrid.RowDefinitions>
<DataGridCellsPresenter Grid.Column="1" ItemsPanel="{TemplateBinding ItemsPanel}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
<DataGridDetailsPresenter Grid.Column="1" Grid.Row="1" SelectiveScrollingGrid.SelectiveScrollingOrientation="{Binding AreRowDetailsFrozen, ConverterParameter={x:Static SelectiveScrollingOrientation.Vertical}, Converter={x:Static DataGrid.RowDetailsScrollingConverter}, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" Visibility="{TemplateBinding DetailsVisibility}"/>
<DataGridRowHeader Grid.RowSpan="2" SelectiveScrollingGrid.SelectiveScrollingOrientation="Vertical" Visibility="{Binding HeadersVisibility, ConverterParameter={x:Static DataGridHeadersVisibility.Row}, Converter={x:Static DataGrid.HeadersVisibilityConverter}, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"/>
</SelectiveScrollingGrid>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</DataGrid.RowStyle>
</DataGrid>