WPF的DataGrid AlternatingRowBackground覆盖样式DataTrigger背景

问题描述 投票:0回答:1

我有一个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>
wpf wpfdatagrid wpf-style
1个回答
1
投票

你必须设定相同的优先级水平的Backround。见Dependency Property Setting Precedence ListAlternatingRowBackground="AliceBlue"删除DataGrid,把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>
© www.soinside.com 2019 - 2024. All rights reserved.