WPF中DataGrid的获取莫一列求和的问题

caolei616 2013-10-24 08:15:23
我看网上的帖子有一种方法是
 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 的行数不多时候 一切正常,当行数一旦十多行的时候,有时候大概二十多行也会出错! 请问为什么?怎么改善。我的目的就是想得到某一列的数据,之后求和或其他操作。
...全文
163 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
caolei616 2013-10-24
  • 打赏
  • 举报
回复
引用 1 楼 hdhai9451 的回复:
你先判断这个值是否为空? dataGrid.Columns[index].GetCellContent(dataGrid.Items[i]) as TextBlock).Text.ToString() 不为空才可以转换,如果是空值转换就会报错.
我写了个判断 的确会有时候为空,可是我数据表里的数没有为空的啊 请问这是什么原因呢? if((dataGrid.Columns[index].GetCellContent(dataGrid.Items[i])==null)) { MessageBox.Show("Error!"); }
caolei616 2013-10-24
  • 打赏
  • 举报
回复
这个怎么写语句判断? 可是我datagrid里面没有空的值啊?
Andy__Huang 2013-10-24
  • 打赏
  • 举报
回复
你先判断这个值是否为空? dataGrid.Columns[index].GetCellContent(dataGrid.Items[i]) as TextBlock).Text.ToString() 不为空才可以转换,如果是空值转换就会报错.
在Windows系统,notepad.exe(记事本)是一个“经典的”、“简洁的”文本编辑器。这个软件,没有华丽的外观,也没有繁杂的功能,仅仅是一个文本编辑小软件。虽然经过Windows系统数十年的变换,但它却保持着永恒姿态,数十年来几乎不曾改变过。曾经,VS的经典DEMO,就有它的身影,一个新建的项目,就藏有一个新建的“记事本”。然而,在WPF的项目,“记事本”却消失的无影无踪,也许是很容易实现,也许是为了革新,而不愿再传承“经典”。确实,使用WPF技术再次让“记事本”复活,确实也是一件非常容易的事情。但是,如果,使用WPF技术,再搭配当下非常流行的MVVM模式呢?复活“记事本”的难度却陡然上升至很多WPF程序员为之默默叹气。而,MVVM模式是掌握WPF的最顶级技术,MVVM模式拥有的无尽的优势,让WPF相对于过往的编程模式来说,是一种革命性的创新,从而也成为大WPF项目必须的模式。但,学习难度。。。。。。在这个《WPF记事本开发详解》的课程,赵老师带领你在WPF,从零开始一步步构建MVVM模式,直到让你亲自以WPF+MVVM的方式,让这个经典的“记事本”软件从你的手“复活”。在课程,赵老师会详细讲解WPF和MVVM的各种技巧,让你从此爱上WPF+MVVM编程。

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧