我使用 SqlDataAdapter 在 datagridview 中显示来自 SQL 的数据。 (这是一个 C# Winforms 应用程序,但这个问题同样适用于 VB。)有些列是可为空的 bool 值。
目前,datagridview 使用一个标准的 CheckBox 列,它使用一个空复选框来表示 null 和 false,并使用一个选中的复选框表示 true。
我想创建一个对于空值根本不显示复选框的列。
解决这个问题的最佳方法是什么?我想知道是否应该创建一个从 DataGridView 继承的新控件并从那里开始。
最佳答案
这是我已经采用并且目前正在工作的解决方案:
((DataGridViewCheckBoxColumn)dgvDisplayData.Columns["field_name"]).ThreeState = true;
这是在数据绑定(bind)之后完成的,并假设 sql 字段“field_name”是一个可为空的 bool 值。 Resharper 对这种格式并不特别满意,提供了“可能的 System.NullReferenceException”警告。
我仍然会对替代/更好的建议感兴趣。
编辑:
我已将其更改如下以避免潜在的空值异常:
DataGridViewCheckBoxColumn chkCol =
(DataGridViewCheckBoxColumn)dgvDisplayData.Columns["field_name"];
if (chkCol != null) chkCol.ThreeState = true;
关于.net - 如何创建 Datagridview 列来处理可为空的 bool 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5822321/