public DateRangeDialog(DialogCoordinator dialogCoordinator, object viewModel, string title, string description, DialogDateRangeEnum rangeType, string dateFromLabel, string dateToLabel, DateTime?defaultDateFrom, DateTime?defaultDateTo, bool closeWindow, int buttonsCount = 1) { InitializeComponent(); _dialogCoordinator = dialogCoordinator; _viewModel = viewModel; TitleLabel.Text = title; TitleLabel.FontWeight = FontWeights.Bold; TitleLabel.FontSize = DescriptionLabel.FontSize * 1.5; DescriptionLabel.Text = description; OneDateDockPanel.Visibility = Visibility.Collapsed; DateRangeDockPanel.Visibility = Visibility.Collapsed; TwoDateDockPanel.Visibility = Visibility.Collapsed; switch (rangeType) { case DialogDateRangeEnum.OneDate: OneDateDockPanel.Visibility = Visibility.Visible; OneDateStartLabel.Content = dateFromLabel; OneDateFrom.SelectedDate = defaultDateFrom; break; case DialogDateRangeEnum.DateRange: DateRangeDockPanel.Visibility = Visibility.Visible; DateRangeStartLabel.Content = dateFromLabel; DateRangeFromTo.BeginDate = defaultDateFrom; DateRangeFromTo.EndDate = defaultDateTo; break; case DialogDateRangeEnum.TwoDate: TwoDateDockPanel.Visibility = Visibility.Visible; TwoDateStartLabel.Content = dateFromLabel; TwoDateEndLabel.Content = dateToLabel; TwoDateFrom.SelectedDate = defaultDateFrom; TwoDateTo.SelectedDate = defaultDateTo; break; } Buttons = new List <Button>(); InitializeButtons(buttonsCount); _closeWindow = closeWindow; }
public async Task <DialogDateRange> DisplayInputDateTimeAsync(string title, string description, DialogDateRangeEnum rangeType, string dateFromLabel, string dateToLabel = null, DateTime?defaultDateFrom = null, DateTime?defaultDateTo = null) { var ret = null as DialogDateRange; var dialog = new Models.Dialogs.View.DateRangeDialog(_coordinator, _viewModel, title, description, rangeType, dateFromLabel, dateToLabel, defaultDateFrom, defaultDateTo, false, 2); dialog.Buttons[0].Content = "Cancel"; dialog.Buttons[0].Click += (sender, args) => ret = new DialogDateRange { DateFrom = null, DateTo = null }; dialog.Buttons[1].Content = "OK"; dialog.Buttons[1].Click += (sender, args) => ret = new DialogDateRange { DateFrom = rangeType == DialogDateRangeEnum.OneDate ? dialog.OneDateFrom.ToSafeDateTime() : (rangeType == DialogDateRangeEnum.DateRange ? dialog.DateRangeFromTo.BeginDate.ToSafeDateTime() : dialog.TwoDateFrom.ToSafeDateTime()), DateTo = rangeType == DialogDateRangeEnum.OneDate ? new DateTime() : (rangeType == DialogDateRangeEnum.DateRange ? dialog.DateRangeFromTo.EndDate.ToSafeDateTime() : dialog.TwoDateTo.ToSafeDateTime()), }; var cd = await _coordinator.GetCurrentDialogAsync <Models.Dialogs.View.DateRangeDialog>(_viewModel); if (cd != null) { await _coordinator.HideMetroDialogAsync(_viewModel, cd); await _coordinator.ShowMetroDialogAsync(_viewModel, dialog); } else { await _coordinator.ShowMetroDialogAsync(_viewModel, dialog); } await dialog.WaitUntilUnloadedAsync(); return(ret); }