如何使用交替的行颜色和修复颜色部分(忽略交替)制作WPF DataGrid

jgl*_*uie 7 wpf user-interface xaml

我有一个数据网格,我试图使其像: 在此输入图像描述

我正在使用该AlternatingRowBackground属性来执行交替颜色.对于固定颜色部分,我有类似于的XAML:

            <DataGrid.Resources>
                <Style TargetType="{x:Type DataGridRow}">
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding Path=ShouldBeFixedColor}" Value="True">
                            <DataTrigger.Setters>
                                <Setter Property="Background" Value="Blue" />
                            </DataTrigger.Setters>
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </DataGrid.Resources>
Run Code Online (Sandbox Code Playgroud)

这种方法的问题在于"交替颜色"优先于固定颜色样式触发器.因此,在底部而不是蓝 - 蓝 - 蓝色,它是蓝灰色 - 蓝色.

关于如何存档所需颜色的任何想法?如果可能的话,我宁愿在XAML级别这样做.

谢谢!

jgl*_*uie 32

根据其他SO答案做了一些改变.希望这可以帮助将来的某个人.

  1. 抽出AlternatingRowBackground=...从电网.加AlternationCount="2"
  2. 添加下面的块来进行样式设置(手动执行交替行)

            <DataGrid.RowStyle>
                <Style TargetType="{x:Type DataGridRow}">
                    <Style.Triggers>
                        <Trigger Property="AlternationIndex" Value="0">
                            <Setter Property="Background" Value="White" />
                        </Trigger>
                        <Trigger Property="AlternationIndex" Value="1">
                            <Setter Property="Background" Value="WhiteSmoke" />
                        </Trigger>
                        <DataTrigger Binding="{Binding Path=Selectable}" Value="False">
                            <DataTrigger.Setters>
                                <Setter Property="Background" Value="LightGray" />
                            </DataTrigger.Setters>
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </DataGrid.RowStyle>
    
    Run Code Online (Sandbox Code Playgroud)