如何在使用 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
,需要做一些额外的工作。
- 将 NavigationView 的
x:FieldModifier
属性 设置为 Public
<winui:NavigationView
x:Name="navigationView"
x:FieldModifier="Public"
...>
</winui:NavigationView>
- 创建
ShellPage
的静态实例
public static ShellPage Current;
public ShellPage()
{
InitializeComponent();
DataContext = this;
Current = this;
Initialize();
}
- 通过
ShellPage.Current.navigationView
完成对NavigationView的操作
foreach (var item in ShellPage.Current.navigationView.MenuItems)
{
var navItem = item as NavigationViewItem;
// Todo
}
当然这样也可以直接达到目的。但相比之下,我更喜欢使用Binding,通过创建ObservableCollection<T>
生成MenuItems并绑定到navigationView.MenuItemsSource
.
此致。
我正在使用 WindowsTemplateStudio
,由于某些原因,我必须修改 MainPage.xaml.cs
中的导航菜单,例如删除或添加一些项目。
怎么做?谢谢
如果您通过 WindowsTemplateStudio 创建了一个 Navigation Pane
,您可以在 Views/ShellPage.xaml
中找到 NavigationView
,您可以在其中添加一个 [=16] =].
在NavigationViewItem
中,x:Uid
指向Strings/en-us
中的文本资源。
如有需要,您也可以在ShellPage.xaml.cs中添加快捷方式。
更新
如果要修改其他页面的ShellPage中的NavigationView
,需要做一些额外的工作。
- 将 NavigationView 的
x:FieldModifier
属性 设置为Public
<winui:NavigationView
x:Name="navigationView"
x:FieldModifier="Public"
...>
</winui:NavigationView>
- 创建
ShellPage
的静态实例
public static ShellPage Current;
public ShellPage()
{
InitializeComponent();
DataContext = this;
Current = this;
Initialize();
}
- 通过
ShellPage.Current.navigationView
完成对NavigationView的操作
foreach (var item in ShellPage.Current.navigationView.MenuItems)
{
var navItem = item as NavigationViewItem;
// Todo
}
当然这样也可以直接达到目的。但相比之下,我更喜欢使用Binding,通过创建ObservableCollection<T>
生成MenuItems并绑定到navigationView.MenuItemsSource
.
此致。