1

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

样本:


|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>

在代码中,我将数据网格绑定到 DataTable:

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

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

在 WPF 中这样做的更好方法是什么?是否可以使用 WPF 中的 DataGrid 做到这一点?

4

2 回答 2

2

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

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

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

于 2012-10-25T07:05:36.947 回答
-3

你可以做类似的事情

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

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

显然,您需要在当前拥有的任何逻辑中实现这一点,如果您发布更多内容,那么我会更好地了解它的去向

于 2012-10-24T07:55:58.043 回答