我有一个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>
你必须设定相同的优先级水平的Backround
。见Dependency Property Setting Precedence List
从AlternatingRowBackground="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>