0

我有一种方法可以比较两个数据表中的数据。比较之后,我想在 WPF dataGRID 中可视化这些比较数据(位于名为 ChangeTab 的新 DataTable 中)。

我正在从 DataContext 填充数据网格:

win.TableOfChange.DataContext = ChangeTab.DefaultView;
<DataGrid ItemsSource="{Binding}" Height="107" HorizontalAlignment="Left"....

我正在与问题作斗争,如何用红色可视化不同的数据(在 DataTables 中),以及与绿色相同的数据 - 图片中类似:

在此处输入图像描述

有没有办法,如何做到这一点(将颜色设置为 WPF dataGRID 单元格,以获得 C# 中的一些红色和一些绿色)?

非常感谢!

4

2 回答 2

1

我假设您在比较过程中构建了源表,如果是这样,您可以轻松存储一个表示相等的布尔值。然后,CellStyle您可以DataTrigger在该属性上使用 aSetter并将该TextElement.Foreground属性更改为所需的值。

于 2012-08-23T22:22:40.807 回答
0

我倾向于对网格中的大多数列使用 DataTemplates。您需要创建一个类,如下所示:

class CellContent
{
    public object Content { get; set; }
    public bool IsDifferent { get; set; }
}

然后创建一个类似这样的数据模板:

<DataTemplate x:Key="bob">
    <ContentPresenter Content="{Binding Path=Content}" TextElement.Foreground="{Binding Path=IsDifferent, Converter={StaticResource myConverter}}" />
<DataTemplate>

然后将模板分配给每一列。

如果 IsDifferent 为真,另一个可能更好的选项是使用触发器来更改颜色。

于 2012-08-23T22:27:11.757 回答