我们的 Windows 窗体上有一个数据绑定的 XtraGrid。其中一列是一个复选框。问题如下:当用户选中复选框并单击“确定”按钮时,该复选框虽然被可见选中,但未被网格视为选中。当我这样做时(在遍历行时):
isAllowed = Convert.ToBoolean(viewMain.GetRowCellValue(nRowCtr, "IsAllowed"))
我回来是假的。但是,如果用户选中该框,然后单击表单上的其他位置或此网格中的另一行,从而将焦点从选中的复选框中移开,则上面的相同代码将返回 True。
任何有关如何解决此行为的见解将不胜感激。
找到解决方法: 使用默认设置,当用户单击单元格进行编辑时,单元格进入编辑模式,加载编辑器控件(在本例中我有一个 CheckEdit 存储库控件)并更改控件的值(在本例中为选中状态) . 如果我单击另一行或另一个控件,则单元格将退出编辑模式,将更改提交给数据项。但是,如果我单击一个按钮,那么我的更改就会丢失。解决方法是使用 CheckEdit 的 CheckedChanged 事件来关闭编辑器:
Private Sub edCheck_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles edCheck.CheckedChanged
gridYears.FocusedView.CloseEditor()
End Sub