Пример #1
0
        /// <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;
        }
Пример #2
0
        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;
        }
Пример #3
0
        /// <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();
        }
Пример #4
0
        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;
        }