public object GetValue() { if (textBox is PDatePicker) { if (valueIsString && stringDateIsMiladi == false) { return((textBox as PDatePicker).SelectedPersianDate); } else { return((textBox as PDatePicker).SelectedDate?.ToString()); } } else { if ((textBox as DatePicker).SelectedDate != null && valueIsString && stringDateIsMiladi == false) { return(AgentHelper.GetShamsiDateFromMiladi((textBox as DatePicker).SelectedDate.Value)); } else { return((textBox as DatePicker).SelectedDate?.ToString()); } } }
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { if (value != null) { return(AgentHelper.GetShamsiDateFromMiladi((DateTime)value)); } else { return(null); } }
public static object ReadValueFromControl(DateTime?selectedDateTime, DateConverterParameter param) { //اینجا درسته که اگر نوع خصوصیت تایم اسپن باشه ولی چون کوئری بصورت رشته اعمال میشه اگر تاریخ و زمان هم باشه در دیتابیس فقط زمان ثبت میشود //البته میشود بجای رشته انواع دیت تایم یا تایم اسپن هم برگرداند. بعدا بررسی شود آیا بهتر است؟ مثلا اگر قرار است فرمولی حساب بشود با انواعی که از پایگاه داده لود میشود یکسان باشند if (selectedDateTime != null && param.valueIsString) { var date = ""; var time = ""; if (!param.hasnotDatePicker) { if (param.stringDateIsMiladi == false) { date = AgentHelper.GetShamsiDateFromMiladi(selectedDateTime.Value); } else { date = selectedDateTime.Value.ToShortDateString(); } } if (!param.hasnotTimePicker) { if (param.stringTimeISAMPMFormat == true) { if (param.stringTimeIsMiladi == true) { time = selectedDateTime.Value.ToString("hh:mm tt").ToUpper().Replace("AM", "ق.ظ").Replace("PM", "ب.ظ"); } else { time = selectedDateTime.Value.ToString("hh:mm tt"); } } else { time = selectedDateTime.Value.ToString("hh:mm:ss"); } } return(date + (!string.IsNullOrEmpty(time) ? " " : "") + time); } else { return(selectedDateTime); } }
private void TxtMiladiDatePicker_SelectedDateChanged(object sender, SelectionChangedEventArgs e) { if (!shamsiIsChangingMiladi && !miladiIsChangingShamsi) { miladiIsChangingShamsi = true; if (txtMiladiDatePicker.SelectedDate == null) { txtShamsiDatePicker.SelectedPersianDate = null; } else { txtShamsiDatePicker.SelectedPersianDate = AgentHelper.GetShamsiDateFromMiladi(txtMiladiDatePicker.SelectedDate.Value); } miladiIsChangingShamsi = false; } if (!propertyIsChangingMiladi) { SetSelectedDateTime(); } }