如何创建Datagridview列来处理可空的bool?

JYe*_*ton 5 .net nullable datagridview winforms

我使用SqlDataAdapter在datagridview中显示SQL中的数据.(这是一个C#Winforms应用程序,但这个问题可以很容易地应用于VB.)有些列是可空的bool.

目前,datagridview使用一个标准的CheckBox列,它使用空复选框为null和false,并选中复选框为true.

我想创建一个列,对于空值,根本不显示任何复选框.

解决这个问题的最佳方法是什么?我想知道我是否应该创建一个继承自DataGridView的新控件并从那里开始.

JYe*_*ton 3

这是我已经采用并且目前正在运行的解决方案:

((DataGridViewCheckBoxColumn)dgvDisplayData.Columns["field_name"]).ThreeState = true;
Run Code Online (Sandbox Code Playgroud)

这是在数据绑定之后完成的,并假设 sql 字段“field_name”是一个可为空的布尔值。Resharper 对这种格式不是特别满意,它提供了“Possible System.NullReferenceException”警告。

我仍然对替代/更好的建议感兴趣。

编辑:

我对此进行了如下更改,以避免潜在的空值异常:

DataGridViewCheckBoxColumn chkCol =
    (DataGridViewCheckBoxColumn)dgvDisplayData.Columns["field_name"];
if (chkCol != null) chkCol.ThreeState = true;
Run Code Online (Sandbox Code Playgroud)