gpt4 book ai didi

c# - UWP NavigationView 通过 MVVM 切换到另一个页面

转载 作者:太空宇宙 更新时间:2023-11-03 14:48:48 34 4
gpt4 key购买 nike

第一次从 WPF 切换到 UWP,我发现 UWP 的世界中确实存在像 SplitViewNavgiationView 这样很棒的控件。

为了更新我当前的家庭项目,我选择了 NavigationView 控件作为我的主要 UI 控件,用于提供各种信息。使用页面导航 ( as shown here ) 的代码隐藏非常简单,但对于我的用例,我想使用 MVVM(作为一个学习过程,不使用像 MVVMLIght 或类似的固件)。

目前,我的 NavigationView 看起来像这样;但我不知道如何通过页面在框架内进行更改(根据我的理解,我必须使用 NavigationService 但还没有找到一个易于理解的示例):

<NavigationView x:Name="nvTopLevelNav" Grid.Column="0" Grid.Row="1" Grid.RowSpan="3" IsPaneOpen="False"  IsPaneToggleButtonVisible="False" CompactModeThresholdWidth="0" IsBackButtonVisible="Collapsed" Background="Black" Foreground="Black"
Loaded="nvTopLevelNav_Loaded"
Margin="0,12,0,0"
SelectionChanged="nvTopLevelNav_SelectionChanged"
ItemInvoked="nvTopLevelNav_ItemInvoked"
IsTabStop="False"
IsSettingsVisible="False"
AlwaysShowHeader="False"
Header="asdasdaasdasdasd">
<NavigationView.MenuItems>
<NavigationViewItem Icon="Home" Content="Home" Tag="Home_Page" />
<NavigationViewItem Icon="Globe" Content="Weather" Tag="Weather_Page" />
<NavigationViewItem Content="My Agenda" Tag="Agenda_Page">
<!-- some custom PathIcon -->
</NavigationViewItem>
<NavigationViewItem Icon="Contact" Content="My News" Tag="News_Page" />
</NavigationView.MenuItems>
<Frame x:Name="contentFrame"></Frame>
</NavigationView>

最佳答案

UWP NavigationView switch to another page via MVVM

根据您的要求,您可以使用 Windows Template Studio创建包含 MVVM 模式和 NavigationService 的 UWP 项目。

private void OnItemInvoked(NavigationViewItemInvokedEventArgs args)
{
if (args.IsSettingsInvoked)
{
NavigationService.Navigate(typeof(SettingsViewModel).FullName);
return;
}

var item = _navigationView.MenuItems
.OfType<NavigationViewItem>()
.First(menuItem => (string)menuItem.Content == (string)args.InvokedItem);
var pageKey = item.GetValue(NavHelper.NavigateToProperty) as string;
NavigationService.Navigate(pageKey);
}

enter image description here

关于c# - UWP NavigationView 通过 MVVM 切换到另一个页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52864380/

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