Библиотека пользовательского интерфейса Windows - как вызвать NavigationView.MenuItems, добавленные динамически - PullRequest
0 голосов
/ 26 апреля 2019

Я использую библиотеку Windows UI и Windows Template StudioВ настоящее время 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);
        }

Как писать код, когда я нажимаю на добавленный элемент, приложение переходит на соответствующую страницу.Соответствующее РЕПО здесь .

enter image description here

1 Ответ

1 голос
/ 29 апреля 2019

Стандартная конфигурация студии шаблонов Windows применяет вложенное свойство (helpers:NavHelper.NavigateTo) для каждого 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));
...