1

我正在开发一个基于 WinForms 的旧软件,该软件使用 DataGrid 和派生自 DataGridtextBoxColumn 之类的类。我需要添加一个复选框列,简单吧?只需创建一个与其他类类似的类,该类派生自 DataGridBoolColumn.. 嗯,但我该如何使用这个控件!?我真的希望自己解决这个问题,但经过很长时间“测试”不同的技术后,我真的没有进一步了。问题是:

a)当不关注/编辑列时,复选框为灰色并选中(我已将允许 null 设置为 false 并将 TrueValue 设置为 true,将 FalseValue 设置为 false 等。

b)编辑字段时,我可以选中或取消选中列,但是当覆盖 Commit 方法然后使用 GetColumnValueAtRow(source, rowNum) 检索值时,它始终为 false .. 始终,无论是否选中。

c)最后在编辑后离开复选框列时,无论我做了什么,它都会变回灰色并选中

这可能是数据绑定问题吗?似乎不是。这只是我缺乏 WinForms 经验,从我可以看出一个旧且不太直观的 MS API 的情况。

有没有人有相关经验为我指明正确的方向,因为我完全不知道该领域的最佳实践?

4

1 回答 1

0

哇..这实际上很简单。您可以随心所欲地说 AllowNulls = false,但如果您的 DefaultValue 设置为 String.Empty,那么它将始终默认为“nulled”位置(至少就绘制时间而言)。

关键是: col.DataType = typeof(bool); col.DefaultValue = 假;

于 2012-08-29T11:35:35.073 回答