C# NavigationView使用后退按钮更改所选项目
我在UWP应用程序中使用navigationview控件,问题是当我单击后退按钮时,焦点元素不会更改为contentframe中显示的项目。例如,单击的元素是camara、store、musica,然后单击back按钮两次以在contentframe元素中显示camara,但musica仍然具有焦点(蓝色矩形)C# NavigationView使用后退按钮更改所选项目,c#,.net,uwp,C#,.net,Uwp,我在UWP应用程序中使用navigationview控件,问题是当我单击后退按钮时,焦点元素不会更改为contentframe中显示的项目。例如,单击的元素是camara、store、musica,然后单击back按钮两次以在contentframe元素中显示camara,但musica仍然具有焦点(蓝色矩形) 我没有发现您的代码中有任何问题。以下几种方法有助于排除故障: 调试并确保MenuItem项不为null 单击“上一步”按钮后,请尝试直接按代码选择“主页”或“照相机” 返回请求的专用vo
我没有发现您的代码中有任何问题。以下几种方法有助于排除故障:
NavigationViewExtensions.SetSelectedIndex(NavigationView,索引);从Microsoft.Toolkit.Uwp.UI.Extensions 4.0.0开始,由于5.0.0版本已被弃用如果您已经解决了问题,请稍后访问此线程的方便用户将其视为已接受,谢谢理解。
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;
}
}
}