private void BackgroundWorker_RunWorkerCompleted(object sender, System.ComponentModel.RunWorkerCompletedEventArgs e) { if (e.Cancelled) { ReadyToLogin = true; return; } ErrType err = e.Result as ErrType; if (err == GeneralErr.Success) { MainWindow mainWnd = new MainWindow { DataContext = this.DataContext, }; Application.Current.MainWindow = mainWnd; mainWnd.Closed += (s, eg) => { Application.Current.Shutdown(); _vm.Dispose(); }; //登陆后的一些初始化动作 _vm.Initialize(); _vm.GetPOrgsList(); mainWnd.Show(); SaveUserInfo( ); DialogResult = true; Close(); } else { LoginFailed = true; ErrorMessage = err.ErrMsg; } }