c++ - 在 C++ winrt 导航 View 中,如何找到已选择/单击的导航项?

标签 c++ xaml uwp winrt-xaml c++-winrt

给定 xaml 中的顶部导航 View ,例如


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

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

最佳答案

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

};

关于c++ - 在 C++ winrt 导航 View 中,如何找到已选择/单击的导航项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58369916/

相关文章:

c# - XAML 键绑定(bind) 1,2,3

c++ - 如何在 Microsoft Visual Studio 2017 中检查 C++ 版本

c++ - std::function 的运行时实现

c++ - 如何为 C 脚本配置 lighttpd 和 fcgi?

UWP 磁贴刷新超时

c# - 如何处理我在代码中动态创建的 UI 元素?

c# - 如何获得{x :DataType} for a DataTemplate in C# for custom DataTemplateSelector

c++ - 来自 QObject::connect 的详细信息

c# - 在 C# 中更改网格的 Canvas.ZIndex

c# - 成员名称不能与其在 g.cs 文件中的封闭类型相同