コード例 #1
0
        protected virtual async Task Navigate(Type viewModelType)
        {
            var request = new MvxViewModelInstanceRequest(viewModelType);

            request.ViewModelInstance = _viewModelLoader.LoadViewModel(request, null);
            await Navigate(request, request.ViewModelInstance).ConfigureAwait(false);
        }
コード例 #2
0
        public static IMvxViewModel LoadViewModel(MvxViewModelRequest request)
        {
            IMvxViewModelLoader viewModelLoader = Mvx.IoCProvider.Resolve <IMvxViewModelLoader>();
            var viewModel = viewModelLoader.LoadViewModel(request, null);

            return(viewModel);
        }
コード例 #3
0
        protected void SetInitialViewModel <TViewModel>(IMvxBundle parameters = null)
            where TViewModel : IMvxViewModel
        {
            var request   = MvxViewModelRequest.GetDefaultRequest(typeof(TViewModel));
            var viewModel = _viewModelLoader.LoadViewModel(request, parameters);

            this.InitialViewModel = viewModel;
        }
コード例 #4
0
        public override async System.Threading.Tasks.Task Initialize()
        {
            await base.Initialize();

            _mvxViewModelLoader.LoadViewModel <SampleModel>(MvxViewModelRequest.GetDefaultRequest(typeof(ChildViewModel)),
                                                            new SampleModel {
                Message = "From locator", Value = 2
            },
                                                            null);
        }
コード例 #5
0
        public override async Task Initialize()
        {
            Log.Warn(() => "Testing log");

            await base.Initialize();

            _mvxViewModelLoader.LoadViewModel(MvxViewModelRequest.GetDefaultRequest(typeof(ChildViewModel)),
                                              new SampleModel
            {
                Message = "From locator",
                Value   = 2
            },
                                              null);
        }
コード例 #6
0
        public override void Show(MvxViewModelRequest request)
        {
            Type fragmentType;

            if (_fragmentManager == null || !_fragmentTypeLookup.TryParseFragmentType(request.ViewModelType, out fragmentType))
            {
                base.Show(request);

                return;
            }

            var fragment = (MvxFragment)Activator.CreateInstance(fragmentType);

            fragment.ViewModel = _viewModelLoader.LoadViewModel(request, null);

            ShowFragment(fragment, true);
        }
コード例 #7
0
        public void Show(MvxViewModelRequest request, bool addToBackStack)
        {
            Type fragmentType;

            if ((_fragmentManager == null) ||
                !_fragmentTypeLookup.TryGetFragmentType(request.ViewModelType, out fragmentType))
            {
                base.Show(request);

                return;
            }

            var fragment = (MvxFragment)Activator.CreateInstance(fragmentType);

            fragment.ViewModel = _viewModelLoader.LoadViewModel(request, null);

            ShowFragment(fragment, addToBackStack);
        }
コード例 #8
0
        private void Navigate(MvxViewModelRequest request, IMvxViewModelLoader loaderService)
        {
            if (request.ViewModelType == typeof(SetRouteStopViewModel))
            {
                var dialog = new SetRouteStopView();
                dialog.ViewModel = loaderService.LoadViewModel(request, null);
                dialog.Show(this.FragmentManager, null);
            }

            if (request.ViewModelType == typeof(SetRouteViewModel))
            {
                var dialog = new SetRouteView();
                dialog.ViewModel = loaderService.LoadViewModel(request, null);
                dialog.Show(this.FragmentManager, null);
            }

            if (request.ViewModelType == typeof(RouteVehiclesViewModel))
            {
                MvxFragment routeView = new RouteView();
                routeView.ViewModel          = loaderService.LoadViewModel(request, null);
                _frag2tag[typeof(RouteView)] = "route_view";

                this.FragmentManager.BeginTransaction()
                .Replace(Resource.Id.content_frame, routeView, "route_view")
                .AddToBackStack(null)
                .Commit();

                this.DisableDrawer();
            }

            if (request.ViewModelType == typeof(VehicleForecastViewModel))
            {
                if (request.RequestedBy != null)
                {
                    if (request.RequestedBy.AdditionalInfo == "map_tap")
                    {
                        var vehicleForecastView = new RouteVehicleForecastView();
                        vehicleForecastView.ViewModel = loaderService.LoadViewModel(request, null);

                        this.ShowMap();

                        this.ShowInSlidingPanel(vehicleForecastView);

                        this.EnableDrawer();
                    }
                }
            }

            if (request.ViewModelType == typeof(RouteStopViewModel))
            {
                if (request.RequestedBy != null)
                {
                    if (request.RequestedBy.AdditionalInfo == "map_tap")
                    {
                        var routeStopView1 = new MapRouteStopView();
                        routeStopView1.ViewModel = loaderService.LoadViewModel(request, null);

                        this.ShowMap();

                        this.ShowInSlidingPanel(routeStopView1);

                        this.EnableDrawer();
                    }
                }
                else
                {
                    MvxFragment routeStopView = new RouteStopView();
                    routeStopView.ViewModel          = loaderService.LoadViewModel(request, null);
                    _frag2tag[typeof(RouteStopView)] = "route_stop_view";

                    this.FragmentManager.BeginTransaction()
                    .Replace(Resource.Id.content_frame, routeStopView, "route_stop_view")
                    .AddToBackStack(null)
                    .Commit();

                    this.DisableDrawer();
                }
            }

            if (request.ViewModelType == typeof(LicensesViewModel))
            {
                var licensesView = new LicensesView();
                licensesView.ViewModel          = loaderService.LoadViewModel(request, null);
                _frag2tag[typeof(LicensesView)] = "licenses_view";

                this.FragmentManager.BeginTransaction()
                .Replace(Resource.Id.content_frame, licensesView, "licenses_view")
                .AddToBackStack(null)
                .Commit();

                this.DisableDrawer();
            }

            if (request.ViewModelType == typeof(ImageLicensesViewModel))
            {
                var imageLicensesView = new ImageLicensesView();
                imageLicensesView.ViewModel          = loaderService.LoadViewModel(request, null);
                _frag2tag[typeof(ImageLicensesView)] = "image_licenses_view";

                this.FragmentManager.BeginTransaction()
                .Replace(Resource.Id.content_frame, imageLicensesView, "image_licenses_view")
                .AddToBackStack(null)
                .Commit();

                this.DisableDrawer();
            }
        }
コード例 #9
0
ファイル: Presenter.cs プロジェクト: akbuffalo1/colorado
 protected IMvxViewModel GetViewModel(MvxFragment fragment, MvxViewModelRequest request)
 {
     return(!(fragment is IHolderFragment) ? _viewModelLoader.LoadViewModel(request, null) : null);
 }