WPF datagrid - 每个单元格的自定义颜色

时间:2013-11-26 01:21:03

标签: wpf user-interface datagrid wpfdatagrid

在我的应用程序中,我以编程方式为DataGrid构建所有行和列。我现在想以编程方式为每个单元控制不同的UI方面,例如颜色,字体,字体大小,边框等。我想知道是否有任何on-cell-paint事件我可以添加回调并在每个单元格的基础上设置所有方面。一个例子将不胜感激。

提前感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

我找到的最佳解决方案是捕获DataGrid的OnLoadingRow()。以下链接显示了一个工作示例:

How to set background of a datagrid cell during AutoGeneratingColumn event depending on its value?

答案 1 :(得分:0)

我认为没有。我和你有同样的问题,我的解决方案是创建自己的自定义列并覆盖GenerateElement。我会告诉你我可以的代码:

<cdgc:ColorTextColumn Binding="{Binding value}"

然后:

protected override System.Windows.FrameworkElement GenerateElement(System.Windows.Controls.DataGridCell cell, object dataItem)
    {
        var text = new TextBlock();
        text.HorizontalAlignment = System.Windows.HorizontalAlignment.Right;
        text.SetBinding(TextBlock.TextProperty, this.CopyBinding(this.DataBinding, null, null, null));

        text.Foreground = (System.Windows.Media.Brush).....;

        return text;
    }

如您所见,我先前设置了绑定并在单元格生成中维护