[英]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.