根据行内容对DataGrid中的各个行进行颜色编码

本文关键字:颜色 编码 DataGrid | 更新日期: 2023-09-27 18:02:43

我继承了一个。net 2.0 c#项目,它做了以下事情:

  • 执行SQL查询
  • 将SQL结果绑定到DataGrid

我发现了关于如何在DataGridView中实现这一点的相当多的信息,但是这似乎不适用于DataGrid(缺少DataGridViews拥有的方法/事件处理程序)。

我想要实现的,是基于一个列的结果,设置列的背景颜色为红色(例如)。

有没有人有任何建议,是转换为DataGridView将是唯一现实的选择(我想避免这种情况,如果可能的话!)

根据行内容对DataGrid中的各个行进行颜色编码

你可以在你的DataGrid Style中使用多个DataTriggers

<DataGrid Grid.Row="1" AutoGenerateColumns="True" VerticalAlignment="Top"  ItemsSource="{Binding Items}">
        <DataGrid.RowStyle>
            <Style TargetType="DataGridRow">
                <Style.Triggers>
                    <DataTrigger Binding="{Binding ItemIndex}" Value="True">
                        <Setter Property="Background"  Value="Red"/>
                    </DataTrigger>
                    <DataTrigger Binding="{Binding ItemIndex}" Value="False">
                        <Setter Property="Background"  Value="Blue"/>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </DataGrid.RowStyle>
     ...
   ...
</DataGrid>

DataTriggers的更多信息在这里:http://msdn.microsoft.com/en-us/library/system.windows.datatrigger.aspx