我在两个数据网格中显示两个数据表(让我们左右调用它),它可以工作。但是,我想要做的是允许用户根据选择比较两行(左和右),并在单元格不同时更改背景。
样品:
左
| 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执行此操作?
答案 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);
显然你需要在你现有的任何逻辑中实现这个,如果你发布更多可以,那么我会更好地了解它的发展方向