/// <summary>
        ///     Starts the current bootstrapper.
        /// </summary>
        public virtual void Start(IDataContext context = null)
        {
            if (context == null)
            {
                context = DataContext.Empty;
            }
            Initialize();
            var viewModelType = GetMainViewModelType();

            _application.RootVisual = (UIElement)ViewManager.GetOrCreateView(CreateMainViewModel(viewModelType, context), false, context).GetUnderlyingView();
        }
Esempio n. 2
0
        internal static object GetOrCreateView(IViewModel vm, bool?alwaysCreateNewView, IDataContext dataContext = null)
        {
#if API8
            return(ViewManager.GetOrCreateView(vm, alwaysCreateNewView, dataContext).GetUnderlyingView());
#else
            //NOTE: trying to use current fragment, if any.
            var fragment = vm.Settings.Metadata.GetData(MvvmFragmentMediator.CurrentFragment, false);
            if (fragment == null)
            {
                return(ViewManager.GetOrCreateView(vm, alwaysCreateNewView, dataContext).GetUnderlyingView());
            }
            return(fragment);
#endif
        }
        public virtual Page Start(IDataContext context = null)
        {
            context = context.ToNonReadOnly();
            if (!context.Contains(WrapToNavigationPageConstant))
            {
                context.Add(WrapToNavigationPageConstant, true);
            }
            Initialize();
            context = context.ToNonReadOnly();
            var viewModelType = GetMainViewModelType();
            var viewModel     = CreateMainViewModel(viewModelType, context);
            var view          = (Page)ViewManager.GetOrCreateView(viewModel, null, context).GetUnderlyingView();
            var page          = view as NavigationPage ?? CreateNavigationPage(view, context);

            if (page == null)
            {
                return(view);
            }
            IocContainer.BindToConstant <INavigationService>(new NavigationService(page));
            return(page);
        }