我看网上的帖子有一种方法是
private static double getDataGridColumnSumByIndex(DataGrid dataGrid,int index)
{
double result = 0.0; //返回的结果
double temp = 0.0; //中间变量 for (int i = 1; i < dataGrid.Items.Count;i++ )
{
double.TryParse((dataGrid.Columns[index].GetCellContent(dataGrid.Items[i]) as TextBlock).Text.ToString(),out temp);
result += temp;
}
return result;
}该方法传入一个DataGrid 和 一个 index。我测试时 当我的DataGrid 的行数不多时候 一切正常,当行数一旦十多行的时候,有时候大概二十多行也会出错! 请问为什么?怎么改善。我的目的就是想得到某一列的数据,之后求和或其他操作。
private static double getDataGridColumnSumByIndex(DataGrid dataGrid,int index)
{
double result = 0.0; //返回的结果
double temp = 0.0; //中间变量 for (int i = 1; i < dataGrid.Items.Count;i++ )
{
double.TryParse((dataGrid.Columns[index].GetCellContent(dataGrid.Items[i]) as TextBlock).Text.ToString(),out temp);
result += temp;
}
return result;
}该方法传入一个DataGrid 和 一个 index。我测试时 当我的DataGrid 的行数不多时候 一切正常,当行数一旦十多行的时候,有时候大概二十多行也会出错! 请问为什么?怎么改善。我的目的就是想得到某一列的数据,之后求和或其他操作。
dataGrid.Columns[index].GetCellContent(dataGrid.Items[i]) as TextBlock).Text.ToString()不为空才可以转换,如果是空值转换就会报错.
可是我datagrid里面没有空的值啊?
我写了个判断 的确会有时候为空,可是我数据表里的数没有为空的啊 请问这是什么原因呢?
if((dataGrid.Columns[index].GetCellContent(dataGrid.Items[i])==null))
{
MessageBox.Show("Error!");
}