在我的应用程序中,我以编程方式为DataGrid构建所有行和列。我现在想以编程方式为每个单元控制不同的UI方面,例如颜色,字体,字体大小,边框等。我想知道是否有任何on-cell-paint事件我可以添加回调并在每个单元格的基础上设置所有方面。一个例子将不胜感激。
提前感谢您的帮助。
答案 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;
}
如您所见,我先前设置了绑定并在单元格生成中维护