在 wpf 应用程序中,我绑定了一些 dateTimePicker。我想创建一个转换器,以便在日期为 2999 年 12 月 31 日时在 dateTilmePicker 中显示著名的“选择日期”行。
我创建了一个转换器:
public class DateConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value == null)
return DateTime.MinValue;
if (((DateTime)value).ToShortDateString() == "31/12/2999")
return DateTime.MinValue;
DateTime returnVal;
if (DateTime.TryParse(value.ToString(), out returnVal))
{
if (returnVal != DateTime.MinValue)
return returnVal;
else
return DateTime.MinValue;
}
else
return DateTime.MinValue;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value == null)
return DateTime.MinValue;
DateTime val;
if (value.ToString() == "31/12/2999")
return DateTime.MinValue;
if (DateTime.TryParse(value.ToString(), out val))
return val;
else
return DateTime.MinValue;
}
}
这是我的 XAMl:
<DatePicker x:Name="DateTimePicker_Date" Text="{Binding RelativeSource={RelativeSource Self}, Converter={StaticResource DateConverter}, Path=SelectedDate, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, TargetNullValue='', ValidatesOnDataErrors=False}"/>
我的问题是当我的日期是 31/12/2999 时,DateTimePicker 中写入的值是“01/01/0001”,而不是著名的句子“选择日期”。
有人有什么想法吗?
非常感谢,
此致,
尼克修斯