如何将DateTime的默认值设置为空字符串?

Ash*_*shu 2 wpf datetime datagrid datatrigger

我有一个名为Raised_Time的属性,此属性显示在datagrid Cell中引发警报的时间.当用户创建任何警报时,我不想在datagrid单元格中显示任何内容,它只显示空单元格.

我在网上搜索,发现可以使用DateTime.MinValue设置DateTime的默认值,这将显示datetime i的MinValue:e"1/1/0001 12:00:00 AM".

相反,我希望datagrid单元格保持空白,直到发出警报,它不会显示任何时间.

我认为在这种情况下可以编写datatrigger.我无法为此方案编写数据触发器.我是否还需要一个转换器来检查DateTime是否设置为DateTime.MinValue,将datagrid单元格留空?

请帮忙!!

Rac*_*hel 9

我会使用转换器,因为这是我将来很容易看到重用的东西.这是我以前使用的一个将DateFormat的字符串值作为ConverterParameter.

public class DateTimeFormatConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        if ((DateTime)value == DateTime.MinValue)
            return string.Empty;
        else
            return ((DateTime)value).ToString((string)parameter);
    }


    public object ConvertBack(object value, System.Type targetType, object parameter, CultureInfo culture)
    {
        throw new System.NotImplementedException();
    }
}
Run Code Online (Sandbox Code Playgroud)


Hei*_*nzi 7

我看到两个简单的选项来解决这个问题:

  1. 您使用Nullable数据类型DateTime?,以便您可以存储null而不是DateTime.MinValue未设置警报时间.

  2. 你可以使用转换器,这是一个例子.