当前位置:编程学习 > C#/ASP.NET >>

Silverlight 遍历DataGrid里面的控件出错

foreach (object obj in gridMsg.ItemsSource)
            {
                CheckBox cbx = gridMsg.Columns[1].GetCellContent(obj).FindName("cbSet") as CheckBox;
            }

我这样遍历里面的 checkbox 每次遍历到第7个的时候就报错说找不到,但是模版里面确实有checkbox,已经排除了数据源的问题,

--------------------编程问答-------------------- 看看gridMsg.ItemsSource count是多少 --------------------编程问答-------------------- 先看一下运行到第7次时,obj是什么值 --------------------编程问答-------------------- gridMsg.ItemsSource count  和数据源是一样的 ,肯定超过了7, 每次都7行 obj  还是和前面一样的 没有什么区别 --------------------编程问答-------------------- 我是觉得问题可能是出在你的数据上,如果前六次都是可以的,第七次不可以,只有可能是你第七次数据中出现了控件不支持或者读取不支持的类型,好好看看,你第七次的数据中,有没有不能绑定的数据类型,或者在获取数据的时候,不能用来强制转化的数据 --------------------编程问答-------------------- 你的DataGrid是不是出现上下方的滚动条了,而界面上能看到的只有6条,第7条记录就要用滚动条才能看到?如果是这样的话就正常,因为如果你当前只能显示6条记录,那么DataGrid只创建6个 Row 的实例。所以这么遍历DataGrid的行是会出问题的。 --------------------编程问答-------------------- 我用了你的代码 能跑了起来,
foreach (object obj in gridMsg.ItemsSource)
            {
                CheckBox cbx = gridMsg.Columns[1].GetCellContent(obj).FindName("cbSet") as CheckBox;
            }

代码里边可能出现的问题就是你的列是否写错了,如果没写错,这里应该是没问题的 --------------------编程问答-------------------- 5楼正解!但怎么解决==//
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,