【发布时间】:2014-02-20 04:53:49
【问题描述】:
我正在尝试根据索引从我的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;
}
参考链接 - Get row in datagrid
但不幸的是它返回了一个空对象DataGridRow。
如果我检查网格的 Items[] 属性,我可以看到 13 个项目。
需要有关如何获取网格行的建议,因为我想更改数据网格顶部 2 行和底部 2 行的颜色。
感谢任何帮助。谢谢!!
添加 DataGrid 项的屏幕截图
重要更新
如果我从 Grid 的 SelectedIndexChanged 事件中调用 GetGridRow(),它将完美运行。
另一方面,如果我在构建显示网格的页面对象之后调用它,它会将行对象返回为 NULL。
【问题讨论】:
-
这个方法在哪里?代码在视图模型后面还是在视图模型中?
-
这已经在堆栈溢出时被here 询问过。
-
我在参考资料中提供了这个链接,并使用了该帖子中建议的代码。但是我得到了 Row 的空对象,这就是我被卡住的地方。
-
听起来当时它还没有被初始化。
-
@MikeSchwartz:您能否建议任何解决方法来实现这一目标?