8

私は似せようとしているデータグリッドを持っています: ここに画像の説明を入力

属性を使用して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>

このアプローチの問題は、「代替色」が固定色スタイル トリガーよりも優先されることです。そのため、青青青ではなく、青灰青になっています。

目的のカラーリングをアーカイブする方法についてのアイデアはありますか? 可能であれば、これをすべて XAML レベルで行いたいと思います。

ありがとう!

4

2 に答える 2

37

他の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>
    
于 2012-07-11T16:39:49.973 に答える