datepicker の値を Empty/Null/blank に設定する方法はありますか (通常はデフォルトで 01/01/0001 に設定されます)
これについてあなたの助けに感謝します!!
datepicker の値を Empty/Null/blank に設定する方法はありますか (通常はデフォルトで 01/01/0001 に設定されます)
これについてあなたの助けに感謝します!!
XAML:
コンバーター: DateTime から null へのコンバーター
public class DateTimeToNullConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if(System.Convert.ToDateTime(value).ToLongTimeString() != "12:00:00 AM")
{
return null;
}
return value;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value == null || value.ToString() == "")
{
return DateTime.Now;
}
return value;
}
}
}
日付ピッカーの Text、SelectedDate、および Display Date プロパティでこのコンバーターを使用し、さらに検証するためにビューモデルで lostfocus リレー コマンドを処理します。
private void FromDateLostFocusCommandExecuted(EventArgs args)
{
//ClearValidationErrors();
string inputDate =
((System.Windows.Controls.Primitives.DatePickerTextBox)
(((System.Windows.RoutedEventArgs)(args)).OriginalSource)).Text;
if (inputDate != "")
{
if (!IsValidDate(inputDate))
{
ObservableCollection<string> errors = GetErrorsCollection("FromDate");
errors.Add("Please enter a valid From Date (M/d/yyyy)");
RaiseErrorsChanged("FromDate");
if (!validationErrors.Contains("FromDate"))
{
validationErrors.Add("FromDate");
}
}
else
{
ClearValidationErrors("FromDate");
if (validationErrors.Contains("FromDate"))
{
validationErrors.Remove("FromDate");
}
}
}
else
{
ClearValidationErrors("FromDate");
if (validationErrors.Contains("FromDate"))
{
validationErrors.Remove("FromDate");
}
}
}