uwp - 导航到其他框架(UWP)时如何更改选定的导航 View 项目?

标签 uwp navigationview

我有一个 UWP,其 MainPageNavigationView

<NavigationView x:Name="MyNavigationView"
                ItemInvoked="MyNavigationView_OnItemInvoked"
                >

    <NavigationView.MenuItems>
        <NavigationViewItem Icon="List" Content="Channels" Tag="channels"/>
        <NavigationViewItem Icon="Video" Content="Player" Tag="player"/>
    </NavigationView.MenuItems>

    <Frame x:Name="MyFrame">
        <Frame.ContentTransitions>
            <TransitionCollection>
                <NavigationThemeTransition/>
            </TransitionCollection>
        </Frame.ContentTransitions>
    </Frame>

</NavigationView>

如您所见,另外两个框架是 ChannelsPagePlayerPage。我在 ChannelsPage 中列出了一些 channel ,通过单击其中一项,框架将导航到 PlayerPage:

private void EachTvProgram_Click(object sender, ItemClickEventArgs e)
    {
        var nextPlaying = (TvProgram) e.ClickedItem;
        TvProgramManager.PlayingProgram = nextPlaying.Title;

        ChannelDetails.IsPaneOpen = false;
        Frame.Navigate(typeof(PlayerPage));
    }

虽然页面导航正确,但NavigationView.MenuItem中的SelectedItem仍然是Channels,我如何将其更改为Player 在函数中?

此处的说明图片:explanation image

如您所见,框架实际上是 PlayerPage,而 SelectedItemChannelsPage

最佳答案

您可以创建一个 public 方法来设置 NavigationViewSelectedItem

MainPage.xaml.cs中:

public void SetSelectedNavigationItem(int index)
{
    MyNavigationView.SelectedItem = MyNavigationView.MenuItems[index];
}

现在,导航到 PlayerPage 后,您可以执行以下操作:

Frame appFrame = Window.Current.Content as Frame;
MainPage mainPage = appFrame.Content as MainPage;
mainPage.SetSelectedNavigationItem( 1 );

当然,如果能够更简单地访问主页会更好,例如在 MainPage 上创建 static 方法:

public static MainPage GetCurrent()
{
    Frame appFrame = Window.Current.Content as Frame;
    return appFrame.Content as MainPage;
}

另一个改进是创建一个枚举来替换“神奇的”索引整数。

关于uwp - 导航到其他框架(UWP)时如何更改选定的导航 View 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48322864/

相关文章:

c# - UWO 电子邮件消息换行/换行?

swift - NavigationView SwiftUI 在 iPad 中显示 Split View

swiftui - NavigationView swiftui 不是全屏

xaml - 为什么在设置 ComboBox.SelectedIndex 时出现异常?

c# - 不支持 UWP NavigationView

c# - 数据模板 x :Bind namespace error

信息亭桌面应用程序的 UWP 纵向模式?

Android - 导航 View 项目菜单背景颜色

android - NavigationView:使用 app:actionLayout 自定义项目布局如何?

android - 无法更改 NavigationView 中子项的图标