/* * Here we handle Close command by requesting MenuScreenViewModel. * Indeed, all the SubScreens are tightly coupled with MenuScreen * However, it is not difficult at all to introduce more generic solution. * Or you can move this logic to the MainMenuService, to avoid this coupling. * You'll need to add CloseCommand handler to the MainMenuService and implement it. */ public override void Close(SubScreenViewModel viewModel) { base.Close(viewModel); Publish(new RequestMainMenuScreenCommand() { ScreenType = typeof(MenuScreenViewModel) }); }
private void ScreenAdded(SubScreenViewModel screen) { //if screen is of current type, activate it; else deactivate it screen.IsActive = MainMenuRoot.CurrentScreenType == screen.GetType(); }
public override void InitializeSubScreen(SubScreenViewModel viewModel) { base.InitializeSubScreen(viewModel); }
public virtual void Close(SubScreenViewModel viewModel) { }
public virtual void InitializeSubScreen(SubScreenViewModel viewModel) { // This is called when a SubScreenViewModel is created viewModel.Close.Action = this.CloseHandler; SubScreenViewModelManager.Add(viewModel); }