private void MetroWindow_Closing(object sender, System.ComponentModel.CancelEventArgs e) { if (e.Cancel) { return; } if (_viewModel.QuitConfirmationEnabled && _shutdown == false) { e.Cancel = true; // We have to delay the execution through BeginInvoke to prevent potential re-entrancy Dispatcher.BeginInvoke(new Action(async() => await this.ConfirmShutdown())); } else { flyoutDemo?.Dispose(); _viewModel.Dispose(); } }
public MainWindow() { _viewModel = new MainWindowViewModel(DialogCoordinator.Instance); DataContext = _viewModel; InitializeComponent(); flyoutDemo = new FlyoutDemo(); flyoutDemo.ApplyTemplate(); flyoutDemo.Closed += (o, e) => flyoutDemo = null; Closing += (s, e) => { if (!e.Cancel && flyoutDemo != null) { flyoutDemo.Dispose(); } if (!e.Cancel) { _viewModel.Dispose(); } }; }
public MainWindow() { _viewModel = new MainWindowViewModel(DialogCoordinator.Instance); DataContext = _viewModel; InitializeComponent(); flyoutDemo = new FlyoutDemo(); flyoutDemo.ApplyTemplate(); flyoutDemo.Closed += (o, e) => flyoutDemo = null; Closing += (s, e) => { if (!e.Cancel && flyoutDemo != null) { flyoutDemo.Dispose(); } if (!e.Cancel) { _viewModel.Dispose(); } }; }