为了账号安全,请及时绑定邮箱和手机立即绑定

NavigationView 使用后退按钮更改所选项目

NavigationView 使用后退按钮更改所选项目

C#
至尊宝的传说 2022-06-12 16:21:24
我在 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;            }        }    }
查看完整描述

2 回答

?
红颜莎娜

TA贡献1842条经验 获得超12个赞

已解决,使用 NavigationViewExtensions.SetSelectedIndex(NavigationView, index); 来自 Microsoft.Toolkit.Uwp.UI.Extensions 4.0.0,因为 5.0.0 版本已弃用



查看完整回答
反对 回复 2022-06-12
?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

我在您的代码中没有看到任何问题。几种方法可能有助于排除故障:

  1. 调试并确保 MenuItem 项不为空。

  2. 单击后退按钮时,尝试通过您的代码直接选择家庭或相机

    私人无效OnBackRequested(对象发送者,BackRequestedEventArgs e){字符串名词=“相机”;MenuItem item = subItemsMenu.FirstOrDefault(nom => nom.NombrePantalla.Equals(nombre)); navView.SelectedItem = 项目;}

  3. 将 SelectionChanged="nav_SelectionChanged" 添加到 XAML,然后检查SelectionChanged

  4. 发布一个可以重现您的问题的简单应用程序


查看完整回答
反对 回复 2022-06-12
  • 2 回答
  • 0 关注
  • 146 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信