wpf アプリケーションで、dateTimePicker をバインドしました。日付が 31/12/2999 の場合、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」になっていることです。
アイデアはありますか?
どうもありがとう、
よろしくお願いします、
ニクセウス