我有一个 DataGrid(.net framework 3.5,WPFToolKit)。我想更改某些单元格的边框(左或右)。一,二,三。那么如何才能访问单个单元格呢?这可能吗?我找到了一些解决方案,但它们适用于 .net 4。
问问题
1901 次
1 回答
2
您可以扩展 DataGrid 并添加以下内容,注意:这只是一个示例,您不需要做我正在做的一些处理:
public DataGridCell GetCell(int row, int column)
{
var rowContainer = GetRow(row);
if (rowContainer != null)
{
var presenter = FindVisualChild<DataGridCellsPresenter>(rowContainer);
if (presenter == null)
return null;
// try to get the cell but it may possibly be virtualized
var cell = (DataGridCell)presenter.ItemContainerGenerator.ContainerFromIndex(column);
if (cell == null)
{
// now try to bring into view and retreive the cell
ScrollIntoView(rowContainer, Columns[column]);
cell = (DataGridCell)presenter.ItemContainerGenerator.ContainerFromIndex(column);
}
return cell;
}
return null;
}
public DataGridRow GetRow(int index)
{
var row = (DataGridRow)ItemContainerGenerator.ContainerFromIndex(index);
if (row == null)
{
// may be virtualized, bring into view and try again
ScrollIntoView(Items[index]);
row = (DataGridRow)ItemContainerGenerator.ContainerFromIndex(index);
}
return row;
}
对于 的 定义FindVisualChild
, 看这个 网站.
于 2012-04-12T19:53:16.650 回答