我有一个WPF应用程序,其中我将此属性绑定到一个日期选择器
public Nullable<System.DateTime> dpc_date_engagement { get; set; }
所以我添加了一个转换器:
public class DateConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value != null)
return ((DateTime)value).ToShortDateString();
return String.Empty;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
string strValue = value.ToString();
DateTime resultDateTime;
return DateTime.TryParse(strValue, out resultDateTime) ? resultDateTime : value;
}
}
在XAML文件中:
<DatePicker >
<DatePicker.Text>
<Binding Path="dpc_date_engagement" UpdateSourceTrigger="PropertyChanged">
<Binding.Converter>
<converter:DateConverter/>
</Binding.Converter>
</Binding>
</DatePicker.Text>
</DatePicker>
问题是当日期为空时,显示的文本为1/1/0001。
- 我应该如何修改代码,在数值为空时显示空字符串而不是01/01/0001呢?
01/01/0001 00:00:00
。 - Lamloumi Afifnull
值,而是包含DateTime.MinValue
(或默认构造的 DateTime)。如果它包含 null 值,则转换表达式(DateTime)value
将抛出异常。 - Clemens