我有一个绑定到我的对象属性的列。属性LastRunDate是一个Datetime。在默认/开始时,它会显示1/1/1 12:00 AM的日期。
我的XAML中是否有办法格式化我的日期,如果我有一个这个值的日期,而是显示一个字符串"无"甚至是空白?有没有办法把它放到我的字符串格式中?
现在就是XAML:
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Name}" Header="Name" />
<DataGridTextColumn Binding="{Binding SourceServerName}" Header="Server Source" />
<DataGridTextColumn Binding="{Binding SourceDataBaseName}" Header="Database" />
<DataGridTextColumn Binding="{Binding LastRunTime, StringFormat={}\{0:MM/dd/yyyy hh:mm\}}" Header="Last Run Time" />
</DataGrid.Columns>
答案 0 :(得分:3)
转换器:
var link = document.createElement('a');
link.href = req.query.domain;
var formattedDomain = link.hostname; //yay
XAML:
class DateTimeConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value is DateTime)
{
var test = (DateTime)value;
if (test == DateTime.MinValue)
{
return "None";
}
var date = test.ToString("MM/dd/yyyy hh:mm");
return (date);
}
return string.Empty;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
答案 1 :(得分:1)
将LastRunDate
的类型更改为Datetime?
。然后使用:
<DataGridTextColumn Binding="{Binding LastRunTime, TargetNullValue=None,
StringFormat={}\{0:MM/dd/yyyy hh:mm\}}" Header="Last Run Time" />
由于你的财产在开始时尚未初始化(即null
),你会看到&#34;无&#34;。