加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 按索引获取DataGrid

发布时间:2020-12-15 08:44:19 所属栏目:百科 来源:网络整理
导读:我试图从我的DataGrid基于索引获取DataGridRow.我使用以下代码: public DataGridRow GetGridRow(int index){ DataGridRow row = (DataGridRow)DG_Statement.ItemContainerGenerator.ContainerFromIndex(index); if (row == null) { // May be virtualized,b
我试图从我的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的null对象.
如果我检查我的网格的Items []属性,我可以看到13个项目.

需要建议如何获取网格行,因为我想要更改数据网格的前2行和后2行的颜色.

任何帮助表示赞赏.谢谢!!

添加DataGrid项的屏幕截图

重要更新

如果我从Grid的SelectedIndexChanged事件中调用GetGridRow(),它可以完美地工作.

另一方面,如果我在构造显示网格的页面的对象之后调用它,则将行对象返回为NULL.

解决方法

所以如果它在代码背后.您只需获取DataGrid的选定索引即可.我已将datagrid dataGrid命名为示例.
var rowIndex = dataGrid.SelectedIndex;

var row = (DataGridRow)dataGrid.ItemContainerGenerator.ContainerFromIndex(selectedIndex);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读