private void RaiseViewModelClose(IClosableViewModel viewModel) { var eventArgs = new ViewModelCloseEventArgs(viewModel); OnViewModelClose(eventArgs); var handler = ViewModelClosing; handler?.Invoke(this, eventArgs); }
private void ViewModelManagerOnViewModelClosing(object sender, ViewModelCloseEventArgs e) { List<IViewModel> viewModellToClose = new List<IViewModel> {e.ViewModel}; IViewModel next = e.ViewModel; while (_viewModelLink.ContainsKey(next)) { next = _viewModelLink[next]; viewModellToClose.Add(next); } var window = _activeViews[next] as Window; Debug.Assert(window != null, "Active view is not are window, or active window not find"); window.Close(); foreach (var viewModel in viewModellToClose) { _viewModelLink.Remove(viewModel); _activeViews.Remove(viewModel); } }
protected virtual void OnViewModelClose(ViewModelCloseEventArgs eventArgs) { // }