我有一个比较两个dataTable中数据的方法。在比较之后,我想要在WPF dataGRID中可视化这些比较数据(在新的DataTable中称为ChangeTab)。
我从DataContext填充datagrid:
win.TableOfChange.DataContext = ChangeTab.DefaultView;
<DataGrid ItemsSource="{Binding}" Height="107" HorizontalAlignment="Left"....
我正在解决问题,如何用红色来显示不同的数据(在DataTables中),以及与绿色相同的数据 - 如图所示:
是否有办法,如何做到这一点(将颜色设置为WPF dataGRID单元格中的某些红色和某些绿色来自C#)?
非常感谢!
答案 0 :(得分:1)
我假设您在比较过程中构建源表,如果是这样,您可以轻松存储指示相等的布尔值。然后在CellStyle
中,您可以在该媒体资源上使用DataTrigger
,并Setter
将TextElement.Foreground
属性更改为所需的值。
答案 1 :(得分: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为真时使用Trigger来改变颜色。