在 c++ winrt 导航视图中,如何找到选择/单击的导航项?

In c++ winrt Navigation view how do I find the nav item that was chosen/clicked?

本文关键字:导航 选择 单击 winrt c++ 视图 何找      更新时间:2023-10-16

给定 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>

以及类似或类似的导航关于函数


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 = ?
};

如何找出选择了哪个页面,以便导航到正确的页面?这就是我如何找出点击了哪个链接?

您可以根据标签获取您选择的页面,例如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());
};