//property changed callbacks and value coercions
        static object coerceDisplayDateEnd(DependencyObject d, object o)
        {
            var pdp = d as PersianDatePicker;

            Mohsen.PersianDate value = (Mohsen.PersianDate)o;
            if (value < pdp.DisplayDateStart)
            {
                return(pdp.DisplayDateStart);
            }
            return(o);
        }
        static object coerceDateToBeInRange(DependencyObject d, object o)
        {
            PersianDatePicker pdp = d as PersianDatePicker;

            Mohsen.PersianDate value = (Mohsen.PersianDate)o;
            if (value < pdp.DisplayDateStart)
            {
                return(pdp.DisplayDateStart);
            }
            if (value > pdp.DisplayDateEnd)
            {
                return(pdp.DisplayDateEnd);
            }
            return(o);
        }