Как изменить меню навигации в main.cs при использовании WindowsTemplateStudio? - PullRequest
0 голосов
/ 08 октября 2019

Я использую WindowsTemplateStudio, по какой-то причине мне нужно изменить меню навигации в MainPage.xaml.cs, например удалить или добавить некоторые элементы. Как сделать? Thx.

1 Ответ

1 голос
/ 08 октября 2019

Если вы создали Navigation Pane через WindowsTemplateStudio , вы можете найти NavigationView в Views/ShellPage.xaml, где вы можете добавить NavigationViewItem.

В NavigationViewItem, x:Uid указывает на текстовый ресурс в Strings/en-us.

При необходимости вы также можете добавить ярлыки в ShellPage.xaml.cs.


Обновление

Если вы хотите изменить NavigationView в ShellPage на других страницах, вам нужно проделать дополнительную работу.

  1. Установите для свойства 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();
}
Завершите работу NavigationView с помощью ShellPage.Current.navigationView
foreach (var item in ShellPage.Current.navigationView.MenuItems)
{
    var navItem = item as NavigationViewItem;
    // Todo
}

Конечно, таким способом можно напрямую достичь цели. Но для сравнения я предпочитаю использовать Binding, генерировать MenuItems, создавая ObservableCollection<T> и привязывать к navigationView.MenuItemsSource.

С уважением.

...