首页 文章

如何在WPF DataGRID中的特定单元格中设置文本的颜色

提问于
浏览
0

我有一个比较两个dataTable中的数据的方法 . 在比较之后,我想要在WPF dataGRID中可视化这些比较数据(在新的DataTable中称为ChangeTab) .

我从DataContext填充datagrid:

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

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

enter image description here

有没有办法,怎么做(将颜色设置为WPF dataGRID单元格中的某些红色和一些绿色来自C#)?

非常感谢!

2 回答

  • 1

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

  • 0

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

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

    然后创建一个这样的datatemplate:

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

    然后,您将模板分配给每个列 .

    如果IsDifferent为真,另一个可能更好的选择是使用Trigger来改变颜色 .

相关问题