Beispiel #1
0
 public override IDisposable DatePrompt(DatePromptConfig config)
 {
     Dispatch(() =>
     {
         var calendar = new System.Windows.Controls.Calendar()
         {
             DisplayDateStart = config.MinimumDate,
             DisplayDateEnd   = config.MaximumDate,
             DisplayMode      = System.Windows.Controls.CalendarMode.Month,
             SelectionMode    = System.Windows.Controls.CalendarSelectionMode.SingleDate
         };
         if (config.SelectedDate != null)
         {
             DateTime selectedDate = DateTime.Today;
             if (selectedDate > (config.SelectedDate ?? DateTime.MaxValue))
             {
                 selectedDate = config.SelectedDate ?? DateTime.MaxValue;
             }
             if (selectedDate < (config.SelectedDate ?? DateTime.MinValue))
             {
                 selectedDate = config.SelectedDate ?? DateTime.MinValue;
             }
             calendar.SelectedDate = selectedDate;
         }
         FormsContentDialog dialog = new FormsContentDialog()
         {
             Title   = config.Title,
             Content = new System.Windows.Controls.Viewbox()
             {
                 Stretch          = System.Windows.Media.Stretch.Uniform,
                 StretchDirection = System.Windows.Controls.StretchDirection.UpOnly,
                 Child            = calendar,
             },
             IsPrimaryButtonEnabled   = true,
             PrimaryButtonText        = config.OkText,
             IsSecondaryButtonEnabled = config.IsCancellable,
             SecondaryButtonText      = config.CancelText
         };
         dialog.PrimaryButtonClick   += (s, e) => { HideContentDialog(); config.OnAction(new DatePromptResult(true, calendar.SelectedDate ?? DateTime.Today)); e.Cancel = true; };
         dialog.SecondaryButtonClick += (s, e) => { HideContentDialog(); config.OnAction(new DatePromptResult(false, calendar.SelectedDate ?? DateTime.Today)); e.Cancel = true; };
         ShowContentDialog(dialog);
     });
     return(new DisposableAction(HideContentDialog));
 }
        public override IDisposable DatePrompt(DatePromptConfig config)
        {
            var picker = new AI.AIDatePickerController
            {
                Mode             = UIDatePickerMode.Date,
                SelectedDateTime = config.SelectedDate ?? DateTime.Now,
                OkText           = config.OkText,
                CancelText       = config.CancelText,
                Ok     = x => config.OnAction(new DatePromptResult(true, x.SelectedDateTime)),
                Cancel = x => config.OnAction(new DatePromptResult(false, x.SelectedDateTime)),
            };

            if (config.MaximumDate != null)
            {
                picker.MaximumDateTime = config.MaximumDate;
            }

            if (config.MinimumDate != null)
            {
                picker.MinimumDateTime = config.MinimumDate;
            }

            return(this.Present(picker));
        }