WPF DataGrid AlternatingRowBackground重写后台的样式DataTrigger

WPF DataGrid AlternatingRowBackground重写后台的样式DataTrigger,wpf,wpfdatagrid,wpf-style,Wpf,Wpfdatagrid,Wpf Style,我有一个DataGrid,其中显示了许多行数据。为了在视觉上区分行,我为交替行添加了背景色 但是,有一些行包含非常有趣的数据,我想引起用户的注意,因此我使用样式DataTrigger来突出显示这些特定的行 我的问题是交替背景色优先-只有奇数行没有背景色显示高光 注意,这是一个使用MVVM模式的数据绑定数据网格,没有代码隐藏 非常精简的代码如下所示: <DataGrid ItemsSource="{Binding FilteredTraceMessages, Mode=OneWay}"

我有一个DataGrid,其中显示了许多行数据。为了在视觉上区分行,我为交替行添加了背景色

但是,有一些行包含非常有趣的数据,我想引起用户的注意,因此我使用样式DataTrigger来突出显示这些特定的行

我的问题是交替背景色优先-只有奇数行没有背景色显示高光

注意,这是一个使用MVVM模式的数据绑定数据网格,没有代码隐藏

非常精简的代码如下所示:

<DataGrid ItemsSource="{Binding FilteredTraceMessages, Mode=OneWay}" 
            AlternatingRowBackground="AliceBlue"
            .......>

    <DataGrid.Columns>
        ....
    </DataGrid.Columns>

    <DataGrid.RowStyle>
        <Style TargetType="DataGridRow">
            <Style.Triggers>
                <DataTrigger Binding="{Binding Severity}" Value="Error">
                    <Setter Property="Background" Value="LightSalmon"></Setter>
                </DataTrigger>
                <DataTrigger Binding="{Binding Severity}" Value="Warning">
                    <Setter Property="Background" Value="LemonChiffon"></Setter>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </DataGrid.RowStyle>
</DataGrid>
您必须将回退设置为相同的优先级。看见 从DataGrid中删除AlternatingRowBackground=AliceBlue并将AlternationCount=2放在那里。然后在第一个位置添加AlternationIndex的触发器

您必须将回退设置为相同的优先级。看见 从DataGrid中删除AlternatingRowBackground=AliceBlue并将AlternationCount=2放在那里。然后在第一个位置添加AlternationIndex的触发器


谢谢你简单、直接、正确的回答!非常有帮助。谢谢你简单、直接、正确的回答!非常有用。
<DataGrid ItemsSource="{Binding FilteredTraceMessages, Mode=OneWay}" AlternationCount="2"
    .......>

    <DataGrid.Columns>
        ....
    </DataGrid.Columns>

    <DataGrid.RowStyle>
        <Style TargetType="DataGridRow">
            <Style.Triggers>
                <Trigger Property="AlternationIndex" Value="1">
                    <Setter Property="Background" Value="AliceBlue"/>
                </Trigger>
                <DataTrigger Binding="{Binding Severity}" Value="Error">
                    <Setter Property="Background" Value="LightSalmon"></Setter>
                </DataTrigger>
                <DataTrigger Binding="{Binding Severity}" Value="Warning">
                    <Setter Property="Background" Value="LemonChiffon"></Setter>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </DataGrid.RowStyle>
</DataGrid>