按索引获取DataGrid
我试图从我的DataGrid
基于索引获取DataGridRow
。 我使用以下代码:
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; }
参考链接 – 获取数据网格中的行
但遗憾的是它返回了DataGridRow
的null对象。 如果我检查我的网格的Items[]
属性,我可以看到13个项目。
需要建议如何获取网格行,因为我想要更改数据网格的前2行和后2行的颜色。
任何帮助表示赞赏。 谢谢!!
添加DataGrid项的屏幕截图
重要更新
如果我从Grid的SelectedIndexChanged事件中调用GetGridRow(),它可以完美地工作。
另一方面,如果我在构造显示网格的页面对象后调用它,则将行对象返回为NULL。
所以如果它在代码背后。 您只需获取DataGrid的选定索引即可。 我已将datagrid dataGrid命名为示例。
var rowIndex = dataGrid.SelectedIndex; var row = (DataGridRow)dataGrid.ItemContainerGenerator.ContainerFromIndex(selectedIndex);
检查以确保您传入的索引实际上在边界内。