/// <summary> /// Display/Close the splash screen and run setup /// </summary> /// <returns></returns> private void DoSetup() { var presenter = new MvxWpfViewPresenter(MainWindow as MainWindow); var setup = new Setup(Dispatcher, presenter); // Create a thread to launch Breaker setup.Initialize(); Mvx.Resolve <IMvxAppStart>().Start(); setupComplete = true; }
private void DoSetup() { var presenter = new MvxWpfViewPresenter(MainWindow); var setup = new Setup(Dispatcher, presenter); setup.Initialize(); var start = Mvx.Resolve <IMvxAppStart>(); start.Start(); setupComplete = true; }
/// <summary> /// 在程序的Application的OnStartup方法中使用 /// </summary> /// <param name="mvxViewPresenter">呈现控制器</param> /// <param name="mvxSetup">启动流程控制器</param> /// <param name="mvxApplication">ViewModelCore当中的</param> /// <param name="mvxAppStart">程序启动控制</param> /// <param name="viewAssemblies">视图程序集</param> /// <param name="viewModelAssemblies">ViewModel程序集</param> /// <param name="serviceAssemblies">提供服务工具的程序集,更具服务工具的接口注册为单例(服务的名称必须以Service结尾)</param> public static void Init <TMainWindow, TViewModel>(MvxWpfViewPresenter mvxViewPresenter = null, IMvxWpfSetup mvxSetup = null, IMvxApplication mvxApplication = null, IMvxAppStart mvxAppStart = null, Assembly[] viewAssemblies = null, Assembly[] viewModelAssemblies = null, Assembly[] serviceAssemblies = null) where TMainWindow : Window where TViewModel : MvxViewModel { var mainWindow = Activator.CreateInstance <TMainWindow>(); if (mvxViewPresenter == null) { mvxViewPresenter = new MvxWpfViewPresenter(mainWindow); } if (mvxSetup == null) { mvxSetup = new BaseSetup <TMainWindow, TViewModel>(viewAssemblies, viewModelAssemblies); } mvxSetup.PlatformInitialize(Application.Current.Dispatcher, mvxViewPresenter); mvxSetup.InitializePrimary(); mvxSetup.InitializeSecondary(); if (serviceAssemblies != null) { foreach (var serviceAssembly in serviceAssemblies) { serviceAssembly.CreatableTypes() .EndingWith("Service") .AsInterfaces() .RegisterAsLazySingleton(); } } var start = Mvx.IoCProvider.Resolve <IMvxAppStart>(); //如果是默认的启动页,则不调用启动方法 if (!(start is BaseAppStart <TViewModel>)) { start.Start(); } else { var request = new MvxViewModelInstanceRequest(typeof(TViewModel)); var viewModel = Mvx.IoCProvider.GetSingleton <IMvxViewModelLoader>().LoadViewModel(request, null); mainWindow.DataContext = viewModel; } mainWindow.Show(); }
private void DoSetup() { LoadMvxAssemblyResources(); var presenter = new MvxWpfViewPresenter(MainWindow); var setup = new Setup(Dispatcher, presenter); setup.Initialize(); UserDialogs.Instance = new UserDialogsImpl(); Mvx.RegisterSingleton <IImageService>(() => new ImageService()); Mvx.RegisterSingleton <IDevice>(new Device()); var start = new CoreAppStart(); var hint = CoreAppStart.CreateHint(); start.Start(hint); _setupComplete = true; }