我正在开发一个基于 WinForms 的旧软件,该软件使用 DataGrid 和派生自 DataGridtextBoxColumn 之类的类。我需要添加一个复选框列,简单吧?只需创建一个与其他类类似的类,该类派生自 DataGridBoolColumn.. 嗯,但我该如何使用这个控件!?我真的希望自己解决这个问题,但经过很长时间“测试”不同的技术后,我真的没有进一步了。问题是:
a)当不关注/编辑列时,复选框为灰色并选中(我已将允许 null 设置为 false 并将 TrueValue 设置为 true,将 FalseValue 设置为 false 等。
b)编辑字段时,我可以选中或取消选中列,但是当覆盖 Commit 方法然后使用 GetColumnValueAtRow(source, rowNum) 检索值时,它始终为 false .. 始终,无论是否选中。
c)最后在编辑后离开复选框列时,无论我做了什么,它都会变回灰色并选中
这可能是数据绑定问题吗?似乎不是。这只是我缺乏 WinForms 经验,从我可以看出一个旧且不太直观的 MS API 的情况。
有没有人有相关经验为我指明正确的方向,因为我完全不知道该领域的最佳实践?