我正在尝试获得DataGridRow
从我的DataGrid
基于索引。我正在使用以下代码:
public DataGridRow GetGridRow(int index)
{
DataGridRow row = (DataGridRow)DG_Statement.ItemContainerGenerator.ContainerFromIndex(index);
if (row == null)
{
// May be virtualized, bring into view and try again.
DG_Statement.UpdateLayout();
DG_Statement.ScrollIntoView(DG_Statement.Items[index]);
row = (DataGridRow)DG_Statement.ItemContainerGenerator.ContainerFromIndex(index);
}
return row;
}
参考链接 -获取数据网格中的行 https://stackoverflow.com/questions/8464704/get-row-in-datagrid
但不幸的是它返回一个空对象DataGridRow
。
如果我检查Items[]
我的网格属性中我可以看到 13 个项目。
需要有关如何获取网格行的建议,因为我想更改数据网格的顶部 2 行和底部 2 行的颜色。
任何帮助表示赞赏。谢谢!!
添加 DataGrid 项目的屏幕截图
重要更新
如果我从网格的 SelectedIndexChanged 事件调用 GetGridRow() ,它会完美地工作。
另一方面,如果我在构造显示网格的页面对象后调用它,它将返回行对象为 NULL。
所以如果它在后面的代码中。您只需获取 DataGrid 的选定索引即可。我将数据网格命名为 dataGrid 作为示例。
var rowIndex = dataGrid.SelectedIndex;
var row = (DataGridRow)dataGrid.ItemContainerGenerator.ContainerFromIndex(selectedIndex);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)