问题描述
|
我在扩展DataGrid中具有以下代码来检查或取消选中CheckBoxColumn:
if (this.Columns[c] is DataGridCheckBoxColumn)
{
CheckBox cb = this.GetCellCtrl<CheckBox>(this.Columns[fromCol],topRow);
for (int r = fromrow + 1; r <= toRow; r++)
{
CheckBox tt = this.GetCellCtrl<CheckBox>(this.Columns[fromCol],this.GetRow(r));
if (tt != null)
tt.IsChecked = cb.IsChecked;
}
}
问题在于,复选框已选中(或未选中),但基础数据未更新。如果我单击该复选框,它将起作用。那么,我的代码和单击鼠标有什么区别?如何解决我的问题?
解决方法
在本地设置值将删除将您的“ 1”耦合到数据的绑定。有什么理由要通过UI更新数据状态?为什么不对数据使用相同的循环逻辑?
如果确实必须这样做,则应该研究UI自动化:
http://msdn.microsoft.com/en-us/library/ms747327.aspx