예제 #1
0
        protected override async void OnNavigatedTo(NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);

            parameter          = (SummaryParameter)e.Parameter;
            ViewModel.ViewType = parameter.ViewType;

            switch (parameter.PeriodType)
            {
            case SummaryPeriodType.Month:
                await LoadMonthViewAsync(ViewModel, parameter.Month);

                break;

            case SummaryPeriodType.Year:
                await LoadYearViewAsync(ViewModel, parameter.Year);

                break;

            default:
                throw Ensure.Exception.NotSupported(parameter.PeriodType.ToString());
            }

            if (parameter.SortDescriptor != null)
            {
                ViewModel.SortDescriptor = parameter.SortDescriptor;
            }

            ContentLoaded?.Invoke(this, EventArgs.Empty);
        }
예제 #2
0
        protected override async void OnNavigatedTo(NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);

            parameter = e.GetParameterOrDefault <SummaryParameter>();
            await LoadAsync();

            handlers.Add(eventHandlers.AddUiThread(this, Dispatcher));
        }
예제 #3
0
        public INavigatorForm Open(object parameter)
        {
            Ensure.NotNull(parameter, "parameter");

            Type pageType;
            Type parameterType = parameter.GetType();

            ITemplate template = rootFrame.Content as ITemplate;

            if (template == null)
            {
                if (parameterType == typeof(MigrateParameter) && rules.TryGetPageType(parameterType, out pageType))
                {
                    return(new PageNavigatorForm(rootFrame, pageType, parameter));
                }

                Type templateType = typeof(Template);
                if (new MobileStateTrigger().IsActive)
                {
                    templateType = typeof(TemplateMobile);
                }

                return(new PageNavigatorForm(rootFrame, templateType, parameter));
            }

            if (rules.TryGetPageType(parameterType, out pageType))
            {
                Summary          summary          = template.ContentFrame.Content as Summary;
                SummaryParameter summaryParameter = parameter as SummaryParameter;
                if (summary != null && summaryParameter != null)
                {
                    summary.DecorateParameter(summaryParameter);
                }

                return(new PageNavigatorForm(template.ContentFrame, pageType, parameter));
            }

            if (rules.TryGetWizardType(parameterType, out pageType))
            {
                return(new WizardNavigatorForm(pageType, parameter, rootFrame, currentParameter));
            }

            throw Ensure.Exception.InvalidOperation("Missing navigation page for parameter of type '{0}'.", parameterType.FullName);
        }
예제 #4
0
        public void DecorateParameter(SummaryParameter parameter)
        {
            if (parameter.Month == null && parameter.Year == null)
            {
                GroupItemViewModel viewModel = pvtGroups.SelectedItem as GroupItemViewModel;
                if (viewModel != null)
                {
                    MonthModel month = viewModel.Parameter as MonthModel;
                    if (month != null)
                    {
                        parameter.Month = month;
                        return;
                    }

                    YearModel year = viewModel.Parameter as YearModel;
                    if (year != null)
                    {
                        parameter.Year = year;
                        return;
                    }
                }
            }
        }