public App() { DispatcherSynchronizationContext.SetSynchronizationContext( new DispatcherSynchronizationContext()); _model = new PecaStarterModel(Title, new ExternalResource(ApplicationName, ApplicationPath)); _viewModel = new MainWindowViewModel(_model); Resources.Add("DataContext", _viewModel); DispatcherUnhandledException += (sender, dispatcherUnhandledExceptionEventArgs) => { Save(_viewModel, _model); if (MessageBox.Show( "未解決のエラーが発生しました。(" + dispatcherUnhandledExceptionEventArgs.Exception.Message + ")プログラムを終了します。", "PecaStarter", MessageBoxButton.OKCancel, MessageBoxImage.Error) != MessageBoxResult.OK) { dispatcherUnhandledExceptionEventArgs.Handled = true; } }; }
private void Save(MainWindowViewModel viewModel, PecaStarterModel model) { viewModel.UpdateModel(); model.Save(); }