如何在使用 WindowsTemplateStudio 时修改 main.cs 中的导航菜单?

How to modify navigation menu in main.cs while using WindowsTemplateStudio?

我正在使用 WindowsTemplateStudio,由于某些原因,我必须修改 MainPage.xaml.cs 中的导航菜单,例如删除或添加一些项目。 怎么做?谢谢

如果您通过 WindowsTemplateStudio 创建了一个 Navigation Pane,您可以在 Views/ShellPage.xaml 中找到 NavigationView,您可以在其中添加一个 [=16] =].

NavigationViewItem中,x:Uid指向Strings/en-us中的文本资源。

如有需要,您也可以在ShellPage.xaml.cs中添加快捷方式。


更新

如果要修改其他页面的ShellPage中的NavigationView,需要做一些额外的工作。

  1. 将 NavigationView 的 x:FieldModifier 属性 设置为 Public
<winui:NavigationView
    x:Name="navigationView"
    x:FieldModifier="Public"
    ...>
</winui:NavigationView>
  1. 创建 ShellPage
  2. 的静态实例
public static ShellPage Current;

public ShellPage()
{
    InitializeComponent();
    DataContext = this;
    Current = this;
    Initialize();
}
  1. 通过ShellPage.Current.navigationView
  2. 完成对NavigationView的操作
foreach (var item in ShellPage.Current.navigationView.MenuItems)
{
    var navItem = item as NavigationViewItem;
    // Todo
}

当然这样也可以直接达到目的。但相比之下,我更喜欢使用Binding,通过创建ObservableCollection<T>生成MenuItems并绑定到navigationView.MenuItemsSource.

此致。