Скрыть значение 00:00:00 TimeSpan в столбце DataGridView - PullRequest
0 голосов
/ 03 мая 2018

У меня есть DataGridView с этим DataTable

var dTable = new DataTable();
dTable.Columns.Add("Date", typeof(DateTime));
dTable.Columns.Add("Time", typeof(TimeSpan));

Может случиться так, что существует TimeSpan со значением 00: 00: 00 .

Есть ли возможность не отображать значение 00: 00: 00 в столбце, как это происходит с DateTime, если значение имеет тип MinValue?

1 Ответ

0 голосов
/ 03 мая 2018

используйте событие CellFormatting в DataGridView, чтобы изменить отображаемое значение без изменения базовых данных (TimeSpan.Zero - значение "00:00:00")

private void Grid_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
    if (e.ColumnIndex < 0 || e.RowIndex < 0) return;
    var grid = (DataGridView)sender;

    if (grid.Columns[e.ColumnIndex].ValueType == typeof(TimeSpan) &&
        TimeSpan.Zero == (TimeSpan)grid[e.ColumnIndex, e.RowIndex].Value)
    {
        e.Value = " ";
        e.FormattingApplied = true;
    }
}
...