Пример #1
0
        void OnMainDisplayInfoChanged(object?sender, DisplayInfoChangedEventArgs e)
        {
            DatePickerDialog?currentDialog = _dialog;

            if (currentDialog != null && currentDialog.IsShowing)
            {
                currentDialog.Dismiss();

                ShowPickerDialog(currentDialog.DatePicker.Year, currentDialog.DatePicker.Month, currentDialog.DatePicker.DayOfMonth);
            }
        }
Пример #2
0
        protected override void DisconnectHandler(MauiDatePicker nativeView)
        {
            if (_dialog != null)
            {
                _dialog.Hide();
                _dialog.Dispose();
                _dialog = null;
            }

            base.DisconnectHandler(nativeView);
        }
Пример #3
0
        protected void CallBack(object o, DatePickerDialog.DateSetEventArgs e)
        {
            _DatePickerCell.Date = e.Date;
            ClearFocus();
            if (_Dialog != null)
            {
                _Dialog.CancelEvent -= OnCancelButtonClicked;
            }

            _Dialog = null;
        }
Пример #4
0
        void ShowPickerDialog(int year, int month, int day)
        {
            if (_dialog == null)
            {
                _dialog = CreateDatePickerDialog(year, month, day);
            }
            else
            {
                _dialog.UpdateDate(year, month, day);
            }

            _dialog.Show();
        }
Пример #5
0
        protected override void DisconnectHandler(MauiDatePicker platformView)
        {
            if (_dialog != null)
            {
                _dialog.Hide();
                _dialog.Dispose();
                _dialog = null;
            }

            DeviceDisplay.MainDisplayInfoChanged -= OnMainDisplayInfoChanged;

            base.DisconnectHandler(platformView);
        }
Пример #6
0
        protected override void Dispose(bool disposing)
        {
            if (disposing)
            {
                if (_Dialog != null)
                {
                    _Dialog.CancelEvent -= OnCancelButtonClicked;
                    _Dialog?.Dispose();
                    _Dialog = null;
                }
            }

            base.Dispose(disposing);
        }
Пример #7
0
        void ShowPickerDialog(int year, int month, int day)
        {
            if (_dialog == null)
            {
                _dialog = CreateDatePickerDialog(year, month, day);
            }
            else
            {
                EventHandler?setDateLater = null;
                setDateLater       = (sender, e) => { _dialog !.UpdateDate(year, month, day); _dialog.ShowEvent -= setDateLater; };
                _dialog.ShowEvent += setDateLater;
            }

            _dialog.Show();
        }
Пример #8
0
        protected override void DisconnectHandler(MauiDatePicker platformView)
        {
            if (_dialog != null)
            {
                _dialog.Hide();
                _dialog.Dispose();
                _dialog = null;
            }

            platformView.ViewAttachedToWindow   -= OnViewAttachedToWindow;
            platformView.ViewDetachedFromWindow -= OnViewDetachedFromWindow;
            OnViewDetachedFromWindow();

            base.DisconnectHandler(platformView);
        }
Пример #9
0
        protected override MauiDatePicker CreateNativeView()
        {
            var mauiDatePicker = new MauiDatePicker(Context)
            {
                ShowPicker = ShowPickerDialog,
                HidePicker = HidePickerDialog
            };

            var date = VirtualView?.Date;

            if (date != null)
            {
                _dialog = CreateDatePickerDialog(date.Value.Year, date.Value.Month, date.Value.Day);
            }

            return(mauiDatePicker);
        }
Пример #10
0
        protected void ShowDialog()
        {
            _Dialog = CreateDatePickerDialog(_DatePickerCell.Date.Year, _DatePickerCell.Date.Month - 1, _DatePickerCell.Date.Day);

            UpdateMinimumDate();
            UpdateMaximumDate();

            if (_DatePickerCell.MinimumDate > _DatePickerCell.MaximumDate)
            {
                throw new ArgumentOutOfRangeException(nameof(DatePickerCell.MaximumDate), "MaximumDate must be greater than or equal to MinimumDate.");
            }

            if (_Dialog is null)
            {
                return;
            }
            _Dialog.CancelEvent += OnCancelButtonClicked;
            _Dialog.Show();
        }
Пример #11
0
 public static void UpdateMaximumDate(this MauiDatePicker platformDatePicker, IDatePicker datePicker, DatePickerDialog?datePickerDialog)
 {
     if (datePickerDialog != null)
     {
         datePickerDialog.DatePicker.MaxDate = (long)datePicker.MaximumDate.ToUniversalTime().Subtract(DateTime.MinValue.AddYears(1969)).TotalMilliseconds;
     }
 }