datagrid的每行列头有个checkbox ,我想遍历DataGrid选中的行,我用getcellContent好多数据都遍历不到
代码
for (int i = 0; i < DataGridDiskList.Items.Count; i++)
{
CheckBox chk = DataGridDiskList.Columns[0].GetCellContent(DataGridDiskList.Items[i]) as CheckBox;
if (chk!=null)
{
if (chk.IsChecked.Value)
{
System.Windows.Forms.MessageBox.Show("not null");
}
//else
// ++noCheck;
//++full;
}
else
{
System.Windows.Forms.MessageBox.Show("null");
//++blank;
}
}
我选了所有的行却只遍历23行,之后的行chk都是空的
求解决!!!!!!
------解决方案--------------------------------------------------------
我猜你是这个问题:
刚开始就找到了一个遍历的方法(我博客中有),成功了,获取到了每一行的控件;后来,datagrid数据多的时候,datagrid自带的滚动条出现了,这样子遍历就出现问题了,只能遍历到页面上呈现的数据行里的控件;这就让我头痛了,想找个折中的办法,也一直没有找到;在网上找没有发现好解!~最后在论坛上问了一高手,告诉我了解决办法。
解决办法:禁用掉datagrid自己的滚动条,在datagrid控件外面加一个滚动条的控件,就可以了!