// This method removes a screen from the application // and cleans up resources related to this screen private bool removeScreen(IScreen screen) { if (!screen.CanClose()) { return(false); } _events.RemoveListener(screen); _screens.Remove(screen); _shellService.ClearTransient(); return(true); }
public void OpenScreen(IScreen screen) { if (screen == null) { return; } if (screen.Equals(_activeScreen)) { return; } if (_activeScreen != null && !_activeScreen.CanClose()) { return; } screen.Activate(); _activeScreen = screen; NotifyOfPropertyChange(() => ActiveScreen); }