WPF:如何在运行时更改datagrid单元格的背景色

WPF:如何在运行时更改datagrid单元格的背景色,wpf,datagrid,datatable,Wpf,Datagrid,Datatable,我在两个数据网格中显示了两个数据表(让我们称之为left和right),它可以正常工作。然而,我想做的是允许用户根据选择比较两行(左行和右行),并在单元格不同时更改背景 样本: 左 |A | B | C | |1 | 2 | 3 | |1 | 2 | 3 | |1 | 2 | 3 | 对 |A | B | C | |1 | 2 | 4 | |1 | 2 | 3 | |1 | 2 | 3 | 在XAML中,我的数据网格看起来像: 在代码中,我将datagrid绑定到DataTable: Tabl

我在两个数据网格中显示了两个数据表(让我们称之为left和right),它可以正常工作。然而,我想做的是允许用户根据选择比较两行(左行和右行),并在单元格不同时更改背景

样本:


|A | B | C |
|1 | 2 | 3 |
|1 | 2 | 3 |
|1 | 2 | 3 |


|A | B | C |
|1 | 2 | 4 |
|1 | 2 | 3 |
|1 | 2 | 3 |

在XAML中,我的数据网格看起来像:

在代码中,我将datagrid绑定到DataTable:

TableRows = new DataTable();
leftData.ItemsSource = TableRows;
当用户选择左侧和右侧的第一行时,列C上的单元格应标记为红色背景


在WPF中如何更好地实现这一点?在WPF中使用DataGrid可以做到这一点吗?

您可以执行以下操作

//dataControl would be the name of your control in the XAML
var cell = dataControl.Cells[columnIndex,rowIndex];

cell.Background = new SolidBrush(Colours.Red);

显然,您需要在您当前拥有的任何逻辑中实现这一点,如果您发布更多,那么我将更好地了解它的发展方向。最后,我找到了解决方案。DataGrid控件不提供获取DataGridCell的方法,但是可以使用VisualTreeHelper从DataGrid控件获取DataGridCell,以获取DataGridCellsReseCenter,也可以从presenter获取DataGridCell

更多信息和代码可在此处找到:


你好,斯蒂奥茨,我编辑了这个问题。问题是DataGrid没有您在代码中提到的任何属性单元格。