首页 > 解决方案 > Windows UI 库 - 如何调用动态添加的 NavigationView.MenuItems

问题描述

我正在使用 windows ui 库和 windows 模板工作室。目前,它们winui:NavigationView.MenuItems已添加到 xaml 中。

    <winui:NavigationView>
        <winui:NavigationView.MenuItems>
            <winui:NavigationViewItem x:Uid="Shell_Main" Icon="Home" helpers:NavHelper.NavigateTo="views:MainPage" />
        </winui:NavigationView.MenuItems>
        <Grid>
            <Frame x:Name="shellFrame" />
        </Grid>
    </winui:NavigationView>

现在我在 .cs 代码中添加了更多项目。

        for(int i = 0; i < 5; i++)
        {
            WinUI.NavigationViewItem navigationViewItem = new WinUI.NavigationViewItem();
            navigationViewItem.Content = "AAA " + i.ToString();
            navigationView.MenuItems.Add(navigationViewItem);
        }

如何编写代码,当我单击添加的项目时,应用程序导航到相关页面。一个相关的回购是here

在此处输入图像描述

标签: xamluwpuwp-xamlwindows-template-studio

解决方案


helpers:NavHelper.NavigateToWindows 模板工作室的默认配置是为每个 NavigationViewItem应用附加属性 ( )。

<winui:NavigationViewItem x:Uid="Shell_Main" Icon="Document" helpers:NavHelper.NavigateTo="views:MainPage" />

因此,如果您想在代码隐藏中创建 NavigationViewItem,您仍然需要为每个 NavigationViewItem 应用附加属性,如下所示:

WinUI.NavigationViewItem navigationViewItem = new WinUI.NavigationViewItem();
navigationViewItem.Content = "AAA " + i.ToString();
navigationViewItem.SetValue(NavHelper.NavigateToProperty, typeof(Views.APage));

推荐阅读