В C ++ WinRt Navigation View, как найти элемент навигации, который был выбран / нажал? - PullRequest
1 голос
/ 14 октября 2019

Учитывая верхнее представление навигации в xaml, такое как


<NavigationView  ItemInvoked="NavToAbout" Grid.Row="0" x:Name="nvSample"  PaneDisplayMode="Top">
            <NavigationView.MenuItems>
                <NavigationViewItem IsSelected="True" Content="Main" Tag="Main" />
                <NavigationViewItem   Content="About" Tag="Abouts" />
               <NavigationViewItem   Content="Settings" Tag="Settingspage" />
            </NavigationView.MenuItems>
            <Frame x:Name="contentFrame"/>
        </NavigationView>

и функцию NavToAbout, подобную или похожую на


void  MainPage::NavToAbout(winrt::Windows::UI::Xaml::Controls::NavigationView  const& sender, winrt::Windows::UI::Xaml::Controls::NavigationViewItemInvokedEventArgs const& handler) {


        //Here get value of item
       //auto pageselected = ?
    };

Как узнать, какая страница была выбрана так, чтобыЯ могу перейти на правильную страницу? Вот как я могу узнать, по какой ссылке нажимали?

1 Ответ

2 голосов
/ 14 октября 2019

Вы можете узнать, какую страницу вы выбираете в соответствии с тегом, например args.InvokedItemContainer().Tag(). Результатом является значение тега, установленное для вашего элемента.

void  MainPage::NavToAbout(winrt::Windows::UI::Xaml::Controls::NavigationView  const& sender, winrt::Windows::UI::Xaml::Controls::NavigationViewItemInvokedEventArgs const& handler) 
{

    hstring navItemTag = unbox_value<hstring>(handler.InvokedItemContainer().Tag());

};
...