繁体   English   中英

按索引获取DataGrid

[英]Get DataGrid row by index

我试图从我的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);

检查以确保您传入的索引实际上在边界内。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM