c# - 当设置了 DefaultCellStyle.Format 且数据为空时显示空单元格

标签 c# datagridview

我有一个数据 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已设置为nulldatagridview将显示一个空单元格,其中的值来自 nullable_dt已分配。

关于c# - 当设置了 DefaultCellStyle.Format 且数据为空时显示空单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10234799/

相关文章:

.net - 绑定(bind)到 EntityCollection 时如何让 Windows 窗体 DataGridView 显示新记录

c# - Unity3d - For 循环中的协程

c# - 如何模拟 WCF 服务中的数据层?

c# - 如何动态添加 SplitContainer c#

c# - 如何防止DataGridView水平滚动时出现闪烁?

c# - 以编程方式删除数据 GridView 中的行标题

c# - 如何知道这是循环的最后一次迭代?

c# - Microsoft.Fakes 不会在正常的单元测试上下文中运行

c# - 日期时间格式小时加一

c# - 数据表中的数据类型?