我们在Windows窗体上有一个数据绑定XtraGrid.其中一列是复选框.问题如下:当用户选中复选框并单击"确定"按钮时,网格不会检查明确检查的复选框.当我这样做(循环遍历行)时:
isAllowed = Convert.ToBoolean(viewMain.GetRowCellValue(nRowCtr, "IsAllowed"))
Run Code Online (Sandbox Code Playgroud)
我回来假.但是,如果用户选中该框,然后单击表单上的其他位置或此网格中的另一行,从而从已选中的复选框中取消焦点,则上述相同的代码将返回True.
任何有关如何解决此问题的见解将不胜感激.
找到的解决方法: 使用默认设置,当用户单击单元格进行编辑时,单元格进入编辑模式,加载编辑器控件(在本例中我有一个CheckEdit存储库控件)并更改控件的值(在本例中为checked状态) .如果我单击另一行或另一个控件,则单元格将退出编辑模式,将更改提交到数据项.但是,如果我点击一个按钮,那么我的更改就会丢失.解决方法是使用CheckEdit的CheckedChanged事件来关闭编辑器:
Private Sub edCheck_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles edCheck.CheckedChanged
gridYears.FocusedView.CloseEditor()
End Sub
Run Code Online (Sandbox Code Playgroud)
小智 10
实际上有一种更简洁的方法(它适用于所有RepositoryItems),在DevExpress网站上有详细说明.我们的想法是从存储库项的EditValueChanged事件处理程序中调用GridView.PostEditor方法,以立即将编辑后的值保存到网格的单元格和基础列中.
| 归档时间: |
|
| 查看次数: |
12961 次 |
| 最近记录: |