2

我有一个数据网格视图。dgv 的数据源是对象的“ReadOnlyCollection”。“ReadOnlyCollection”中对象的属性之一是可为空的“DateTime”。我想要做的是显示一个空白单元格,其中 'DateTime' 为空,但对 DateTime 列应用不同的格式,方法是:

TimeOutColumn.DefaultCellStyle.Format = "MM/dd/yyyy HH:mm";

唯一的问题是将我所有的空条目设置为 DateTime.Min 值。

“历史”是 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 = "";
4

2 回答 2

2

由于DateTime是一个不可为空的对象,它必须有一个值。DateTime但是,可以通过将其声明为 nullable来使其可为空DateTime

以下是一个不可为空的日期时间,并且总是有一个值。

 DateTime dt = new DateTime();

但是,可以通过?在类型之后添加来将其声明为可为空。

DateTime? nullable_dt = new DateTime?();

假设nullable_dt已设置为nulldatagridview将显示一个空单元格,其中的值nullable_dt已被分配。

于 2012-08-27T18:07:14.587 回答
0
batchMembersDataGridView.Rows[e.RowIndex].Cells[16].Value = DateTime.MinValue;

                    if ((DateTime)(batchMembersDataGridView.Rows[e.RowIndex].Cells[16].Value) == DateTime.MinValue)
                    {
                        dataGridViewTextBoxColumn12.DefaultCellStyle.Format = ("");
                    }
于 2012-10-15T04:17:34.170 回答