根据彼得的建议重新工作。
我有一个xceed DateTimePicker。这接受DateTime?要显示和绑定的值。
我有一个特殊日期 - 1900-01-01 00:00:00
如果我将此日期传递给DateTimePicker,我希望将其视为传入null - 即,未显示日期。
当我检索该值时,如果日期尚未设置为null,我想返回相同的特殊日期 - 1900-01-01 00:00:00。
对于所有其他日期,无论发生什么事情都会消失。
在代码背后,我可以这样做(伪代码):
DateTime SpecialDate = new DateTime(1900,1,1,0,0,0)
DateTime TestDate = new DateTime(2016, 2, 8, 10, 0, 0);
DateTimePicker dtp = new DateTimePicker();
// Setting value.
if (TestDate != SpecialDate)
dtp.Value = TestDate;
// Getting value
if (dtp.Value == null)
return SpecialDate;
else
return (DateTime)dtp.Value;
我可以使用Xaml和绑定实现同样的事情吗?
答案 0 :(得分:0)
使用简单的转换器转换和转换值:
public class DateTimeToSentinalDateConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (System.Convert.ToDateTime(value).Equals(new DateTime(1900, 1, 1, 0, 0, 0)))
{
return null;
}
else
{
return value;
}
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value == null)
{
return new DateTime(1900, 1, 1, 0, 0, 0);
}
else
{
return value;
}
}
}
在XAMl中,绑定将是:
Value="{Binding Path=Date , Converter={StaticResource DateTimeToSentinalDateConverter}}"