繁体   English   中英

如何在WPF数据网格中循环该列,从每个单元格获取数据

[英]How to loop the column in a WPF datagrid, get data from each cell

我有一个代码,可以通过循环遍历datagrid的每个单元格来获取数据,但是代码有错误,“对象引用未设置为对象的实例”。

我认为原因可能是我不应该使用“ grid.Columns [j] .GetCellContent(data [i])作为TextBlock”。 我想我应该从ItemsScource而不是从datagrid获取列。

我知道“ int i = 0; i <data.Count; i ++”可以循环每一行,但是如何循环每一列,或更准确地说如何从每个单元格获取数据? 下面是代码

private string GetDatagrid(DataGrid grid)
{
    var data = (ObservableCollection<ConfigViewModel>)grid.ItemsSource;
    StringBuilder dataStr = new StringBuilder();

    for (int i = 0; i < data.Count; i++)
    {

        for (int j = 0; j < grid.Columns.Count; j++)
        {
            TextBlock selectTextBlockInCell = grid.Columns[j].GetCellContent(data[i]) as TextBlock;

            string configVari= selectTextBlockInCell.Text; //This line comes the error!
            dataStr.Append(configVari);
            dataStr.Append("#");
        }
        dataStr.Remove(dataStr.Length - 1, 1);  
        dataStr.Append(@"\\");

    }

    return dataStr.ToString();
}

在您的情况下,gid.cloumns [j] .GetCellContent(Object dataitem)返回Framework元素,它可能会返回TextBlock以外的其他控件,因此您的投射无法正常工作,这就是为什么TextBlock无法初始化的原因,因此您正在获取未设置为对象实例的对象引用。 另一种可能性是您的单元格可能包含空值

暂无
暂无

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

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