我有一个数据 GridView 。 dgv 的数据源是对象的“ReadOnlyCollection”。 “ReadOnlyCollection”中对象的属性之一是可为空的“DateTime”。我想做的是显示一个空白单元格,其中“DateTime”为空,但对 DateTime 列应用不同的格式,方法是:
TimeOutColumn.DefaultCellStyle.Format = "MM/dd/yyyy HH:mm";
唯一的问题是将所有空条目设置为 DateTime.Min 值。
“history”是 ReadOnlyCollection。 这是当前代码:
'DataGridViewTextBoxColumn TimeOutColumn = new DataGridViewTextBoxColumn();
TimeOutColumn.DataPropertyName = "timeout";
TimeOutColumn.HeaderText = "Time Out";
ddgGHistory.Columns.Add(BadgeTypeIDColumn);
ddgGHistory.Columns.Add(EmployeeColumn);
ddgGHistory.Columns.Add(TimeInColumn);
ddgGHistory.Columns.Add(TimeOutColumn);
ddgGHistory.DataSource = history
ddgGHistory.Columns[3].DefaultCellStyle.Format = "MM/dd/yyyy HH:mm";
ddgGHistory.Columns[3].DefaultCellStyle.NullValue = "";
最佳答案
自 DateTime
是一个不可为 null 的对象,它必须有一个值。然而,可以使 DateTime
通过将其声明为可空 DateTime
来可空。
以下是不可为 null 的日期时间,并且始终有一个值。
DateTime dt = new DateTime();
但是,可以通过添加 ?
将其声明为可为空在类型之后。
DateTime? nullable_dt = new DateTime?();
假设nullable_dt
已设置为null
,datagridview
将显示一个空单元格,其中的值来自 nullable_dt
已分配。
关于c# - 当设置了 DefaultCellStyle.Format 且数据为空时显示空单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10234799/