/// <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(); }
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); }