private void NavigationLogic(ShowViewEvent evt) { if (CurrentView != null && CurrentView.ID == evt.ID) { return; } if (evt.ID == ViewList.Views.Back && PreviousView != null) { if (PreviousView.Count() > 0) { CurrentView = PreviousView.Pop(); if (CurrentView != null && !CurrentView.IsOverLay) { PreviousView.Clear(); } } return; } if (AvalableViews.ContainsKey(evt.ID)) { PreviousView.Push(CurrentView); CurrentView = AvalableViews[evt.ID]; if (!CurrentView.IsOverLay) { PreviousView.Clear(); } } FocusManager.SetIsFocusScope((DependencyObject)CurrentView.View, true); CommandManager.InvalidateRequerySuggested(); }
protected virtual void OnShowView(object sender, BaseViewModel viewmodel) { ShowViewEvent?.Invoke(sender, viewmodel); }