protected override void OnElementChanged(ElementChangedEventArgs <DatePicker> e)
        {
            //base.OnElementChanged(e);

            if (e.NewElement == null)
            {
                return;
            }

            if (Control == null)
            {
                var entry = CreateNativeControl();
                entry.EditingDidBegin += OnStarted;
                entry.EditingDidEnd   += OnEnded;
                entry.Text             = "Select date";

                var tapGesture = new UITapGestureRecognizer(
                    () => ShowDatePicker())
                {
                    NumberOfTapsRequired = 1
                };

                entry.AddGestureRecognizer(tapGesture);
                _picker          = new MSFDateTimePicker();
                _delegate        = new DateTimePickerDelegate(this);
                _picker.Delegate = _delegate;
                SetNativeControl(entry);
            }

            UpdateMaximumDate();
            UpdateMinimumDate();
        }
        public override bool ShouldEndPickingStartDate(MSFDateTimePicker dateTimePicker, NSDate startDate, NSDate endDate)
        {
            if (startDate.Compare(_renderer.Element.MinimumDate.ToNSDate()) == NSComparisonResult.Ascending)
            {
                return(false);
            }

            if (endDate.Compare(_renderer.Element.MaximumDate.ToNSDate()) == NSComparisonResult.Descending)
            {
                return(false);
            }

            return(true);
        }
 public override void DidPickStartDate(MSFDateTimePicker dateTimePicker, NSDate startDate, NSDate endDate)
 {
     _renderer.Control.Text = startDate.ToDateTime().ToString();
 }
 public override bool ShouldEndPickingStartDate(MSFDateTimePicker dateTimePicker, NSDate startDate, NSDate endDate)
 {
     return(true);
 }