public MenuViewModel(INavigationService navigationService, IEventAggregator eventAggregator, ISessionStateService sessionStateService, RecipesFacade recipesFacade) { _navigationService = navigationService; _sessionStateService = sessionStateService; _recipesFacade = recipesFacade; eventAggregator.GetEvent <NavigationStateChangedEvent>().Subscribe(OnNavigationStateChanged); MenuItems = new ObservableCollection <MenuViewItem>(new[] { new MenuViewItem("Recettes", "\ued56", PageTokens.Recipes), new MenuViewItem("Sélection", "\uf0e3", PageTokens.SelectedRecipes), new MenuViewItem("Liste des courses", "\ue7bf", PageTokens.ShoppingList), new MenuViewItem("Favories", "\ue113", PageTokens.FavoriteRecipes), new MenuViewItem("Drives", "\uec47", PageTokens.Stores) }); SettingsMenuItem = new MenuViewItem("Paramètres", "\ue713", PageTokens.Settings); UpdateSelectedRecipesMenuItemTitle(); UpdateFavoritesMenuItemTitle(); _recipesFacade.SelectedRecipesContainer.CollectionChanged += OnSelectedRecipesContainerChanged; _recipesFacade.FavoriteRecipesContainer.CollectionChanged += OnFavoriteRecipesContainerChanged; }
private void OnNavigationStateChanged(NavigationStateChangedEventArgs args) { PageTokens currentPageToken; if (Enum.TryParse(args.Sender.Content.GetType().Name.Replace("Page", string.Empty), out currentPageToken)) { _sessionStateService.SessionState[_CurrentPageTokenKey] = currentPageToken.ToString(); var currentMenuItem = MenuItems.FirstOrDefault(item => item.Token == currentPageToken); if (currentMenuItem != null) { SelectedMenuItem = currentMenuItem; } } }