私は DataGrid (.net フレームワーク 3.5、WPFToolKit) を持っています。そして、いくつかのセルの境界線 (左または右) を変更したい。1 つ、2 つまたは 3 つ。では、単一のセルにアクセスするにはどうすればよいでしょうか? そしてそれは可能ですか?いくつかの解決策を見つけましたが、それらは .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 に答える