【发布时间】:2014-08-25 09:13:05
【问题描述】:
我有一个代码通过循环数据网格的每个单元格来获取数据,但是代码有错误,“对象引用未设置为对象的实例”。
我认为原因可能是我不应该使用“grid.Columns[j].GetCellContent(data[i]) as TextBlock”。我认为我应该从 ItemsSource 中获取该列,而不是从数据网格中获取。
我知道 "int i = 0; 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();
}
【问题讨论】:
-
那是因为 grid.Columns[j].GetCellContent(data[i]) 没有返回一个TextBlock,尝试调试并检查它返回什么类型