【发布时间】:2017-08-27 19:30:12
【问题描述】:
我有以下方法来选择我的数据网格中的所有复选框:
private void CheckboxSelectAll(int column)
{
for (int i = 0; i < twn; i++)
{
var row = (DataGridRow)dGrid.ItemContainerGenerator.ContainerFromIndex(i);
if (row == null) continue;
var chk = (System.Windows.Controls.CheckBox)dGrid.Columns[column].GetCellContent(row);
chk.IsChecked = true;
}
}
这只有在所有列都在视图中时才有效。例如,如果复选框的数量超过了数据网格的高度,它将不会选择这些。我将不得不向下滚动,将它们暴露给视图,然后重新调用我的方法以最终选择剩余的复选框。
我错过了什么?这些复选框已经是数据绑定的。
如果我更改数据网格的高度以显示更多复选框,这允许我选择更多。这只是一种解决方法,我想了解为什么以及我的代码使复选框暴露在视图中变得重要的原因。
【问题讨论】:
-
在你的循环中,twn 是什么?
-
一个双精度数,也等于存在的行数。