private void SelectMenuItem(BudgetMenuItemViewModel menuItem) { if (_selectedItemModel == menuItem) { return; } if (_selectedItemModel != null) { _selectedItemModel.IsSelected = false; } _selectedItemModel = menuItem; _selectedItemModel.IsSelected = true; switch (menuItem.MenuItemType) { case MenuItemTypes.BudgetView: var budgetEditor = new BudgetEditorViewModel(BudgetModel); _showScreenCallback(budgetEditor); break; case MenuItemTypes.Account: Account account = menuItem.Payload as Account; var transactionGrid = new TransactionGridViewModel(BudgetModel, account.EntityID); _showScreenCallback(transactionGrid); break; } }
public BudgetMenuViewModel(MainBudgetViewModel mainViewModel, INavigationService navigationService, Action <ViewModelBase> showScreenCallback) { _mainViewModel = mainViewModel; _showScreenCallback = showScreenCallback; _navigationService = navigationService; _budgetModel = _mainViewModel.BudgetModel; _budget = _budgetModel?.GetBudget(); _budget?.Accounts?.EnsureCollectionLoaded(); _mainViewModel.PropertyChanged += (sender, e) => { if (e.PropertyName == nameof(MainBudgetViewModel.BudgetModel)) { this.BudgetModel = _mainViewModel.BudgetModel; } }; InitializeAccountItems(); InitializeRelayCommands(); _budgetViewItem = new BudgetMenuItemViewModel(MenuItemTypes.BudgetView, "Budget", null); }