static void OnSelectedDateChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { PersianDatePicker pdp = d as PersianDatePicker; var date = e.NewValue as DateTime?; if (date != null) { if (pdp.PersianSelectedDate == null || pdp.PersianSelectedDate.ToDateTime() != date.Value) { PersianDate newDate; if (PersianDate.TryParse(date.Value, out newDate)) { d.SetValue(PersianSelectedDateProperty, newDate); } else { d.SetValue(PersianSelectedDateProperty, null); } } } else { d.SetValue(PersianSelectedDateProperty, null); } }
static object CoercePersianSelectedDate(DependencyObject d, object o) { PersianDatePicker pdp = d as PersianDatePicker; PersianDate value = (PersianDate)o; if (value != null) { if (value < pdp.DisplayDateStart) { return(pdp.DisplayDateStart); } if (value > pdp.DisplayDateEnd) { return(pdp.DisplayDateEnd); } } else { if (pdp.AllowNull == false) { if (pdp.PersianSelectedDate == null) { return(PersianDate.Today); } else { return(pdp.PersianSelectedDate); } } } return(o); }
static object CoerceDisplayDateEnd(DependencyObject d, object o) { PersianDatePicker pdp = d as PersianDatePicker; PersianDate value = (PersianDate)o; if (value < pdp.DisplayDateStart) { return(pdp.DisplayDateStart); } return(o); }
static void OnPersianSelectedDateChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { PersianDatePicker pdp = d as PersianDatePicker; if (e.NewValue != null) { pdp.Text = e.NewValue.ToString(); d.SetValue(SelectedDateProperty, (e.NewValue as PersianDate).ToDateTime()); } else { pdp.Text = string.Empty; d.SetValue(SelectedDateProperty, null); } pdp.RaiseEvent(new RoutedEventArgs(SelectedDateChangedEvent, pdp)); }