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

时间:2012-10-24 07:17:59

标签: wpf datagrid datatable

我在两个数据网格中显示两个数据表(让我们左右调用它),它可以工作。但是,我想要做的是允许用户根据选择比较两行(左和右),并在单元格不同时更改背景。

样品:


| 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中,我的Datagrids看起来像:<DataGrid Grid.Column="0" x:Name="leftData" HorizontalAlignment="Stretch" > </DataGrid>

在Code中,我将datagrid绑定到DataTable:

TableRows = new DataTable();
leftData.ItemsSource = TableRows;

当用户选择左侧和右侧的第一行时,C列上的单元格应标有红色背景。

在WPF中如何更好地实现这一目标?是否可以在WPF中使用DataGrid执行此操作?

2 个答案:

答案 0 :(得分:1)

最后我找到了解决方案。 DataGrid控件没有提供获取DataGridCell的方法,但是可以通过使用VisualTreeHelper从DataGrid控件获取它以获取DataGridCellsPresenter,并且可以从演示者获取DataGridCell。

更多信息和代码可以在这里找到:

http://techiethings.blogspot.ch/2010/05/get-wpf-datagrid-row-and-cell.html

答案 1 :(得分:0)

你可以做点什么

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

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

显然你需要在你现有的任何逻辑中实现这个,如果你发布更多可以,那么我会更好地了解它的发展方向