gpt4 book ai didi

c++ - HOW TO:获取在C++中的NavigationView中选择的项目

转载 作者:行者123 更新时间:2023-12-02 10:24:05 31 4
gpt4 key购买 nike

我是UWP的新手,我认为有一个简单的问题需要解决,但是我发现的示例没有用。我在UWP项目中使用导航 View ,并且希望能够切换页面并在框架中显示。当我在导航 View 中选择一个项目时,将触发ItemInvoked事件。我知道将页面加载到下面包含的框架中的代码。

void enVigilServer::MainPage::nvSample_ItemInvoked(Windows::UI::Xaml::Controls::NavigationView^ sender, Windows::UI::Xaml::Controls::NavigationViewItemInvokedEventArgs^ args)
{

this->contentFrame->Navigate(Windows::UI::Xaml::Interop::TypeName(SysConf::typeid));

}

我的问题是如何确定我从NavigationView中选择了哪个项目来显示相关页面。

谢谢

最佳答案

它实际上与c++-cx有关,我将把这个标签用于您的问题。

为了简化导航,我们可以在应用程序中使用标签系统。请参见以下代码:

    <NavigationView x:Name="NavigationViewControl" ItemInvoked="NavigationViewControl_ItemInvoked" >
<NavigationView.MenuItems>
<NavigationViewItem Content="A" x:Name="A" Tag="tga" />
<NavigationViewItem Content="B" x:Name="B" Tag="tgb"/>
<NavigationViewItem Content="C" x:Name="C" />
</NavigationView.MenuItems>
<Frame x:Name="contentFrame"/>
</NavigationView>

这是一个示例,我们将标签添加到项目中。然后,我们将在调用代码中执行以下操作:
void NavigationVWCX::MainPage::NavigationViewControl_ItemInvoked(Windows::UI::Xaml::Controls::NavigationView^ sender, Windows::UI::Xaml::Controls::NavigationViewItemInvokedEventArgs^ args)
{
auto navitemtag = args->InvokedItemContainer->Tag->ToString();
if (navitemtag == "tga")
{
contentFrame->Navigate(Windows::UI::Xaml::Interop::TypeName(PageA::typeid));
}
if (navitemtag == "tgb")
{
contentFrame->Navigate(Windows::UI::Xaml::Interop::TypeName(PageB::typeid));
}
}

顺便说一句,别忘了还要在页面上添加标签,例如:
PageB::PageB()
{
InitializeComponent();
this->Tag = "tgb";
}

关于c++ - HOW TO:获取在C++中的NavigationView中选择的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54201778/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com