public void Navigate(string pageKey, Type pageType, Type viewModelType) { // Change content of the contentFrame _shellPage.ContentFrame.Navigate(pageType); var page = _shellPage.ContentFrame.Content as IBurlsPage; page.ViewModelBase = _serviceProvider.GetService(viewModelType) as IViewModel; _shellPage.RefreshUI(); // Update the navigation if needed var menuItems = _shellPage.MainNavigation.MenuItems.Concat(_shellPage.MainNavigation.FooterMenuItems); var selectedItem = menuItems.FirstOrDefault(x => (x as NavigationViewItem).Tag.ToString().Equals(pageKey)); if (_shellPage.MainNavigation.SelectedItem != selectedItem) { _shellPage.MainNavigation.SelectedItem = selectedItem; } }