[英]NavigationView change selected item using back button
我在UWP應用程序中使用導航視圖控件,就是當我單擊后退按鈕時,焦點元素不會更改為內容框架中顯示的項目。 例如,點擊的元素是camara,store,musica,然后是后退按鈕兩次以在contentframe元素中顯示camara,但是musica仍然具有焦點(藍色矩形)
private void FrameNavigated( object sender, NavigationEventArgs e )
{
var currentView = SystemNavigationManager.GetForCurrentView();
if ( ContentFrame.CanGoBack )
{
currentView.AppViewBackButtonVisibility = AppViewBackButtonVisibility.Visible;
}
else
{
currentView.AppViewBackButtonVisibility = AppViewBackButtonVisibility.Collapsed;
}
}
private void OnBackRequested( object sender, BackRequestedEventArgs e )
{
if ( ContentFrame.CanGoBack )
{
e.Handled = true;
PageStackEntry pageStackEntry = ContentFrame.BackStack.LastOrDefault();
ContentFrame.GoBack();
if ( pageStackEntry != null )
{
string nombre = pageStackEntry.SourcePageType.Name;
MenuItem item = subItemsMenu.FirstOrDefault(nom => nom.NombrePantalla.Equals(nombre));
navView.SelectedItem = item;
navView.Header = item.Encabezado;
}
}
}
解決了,使用NavigationViewExtensions.SetSelectedIndex(NavigationView,index); 來自Microsoft.Toolkit.Uwp.UI.Extensions 4.0.0,因為不推薦使用5.0.0版本
我沒有在你的代碼中看到任何問題。 有幾種方法可以幫助排除故障:
調試並確保MenuItem項不為null。
單擊后退按鈕時,請嘗試使用代碼直接選擇主頁或相機
private void OnBackRequested(object sender,BackRequestedEventArgs e){string nombre =“Camera”; MenuItem item = subItemsMenu.FirstOrDefault(nom => nom.NombrePantalla.Equals(nombre)); navView.SelectedItem = item; }
將SelectionChanged =“nav_SelectionChanged”添加到XAML,然后檢查SelectionChanged
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.