如何在 UWP 中使用组/标题和菜单项实现导航视图

问题描述

我想使用数据模板实现带有动态标题菜单项的 NavigationView。

Like this in Microsoft ToDo

我有这样的代码

<muxc:NavigationView
        x:Name="SidebarNavigationView"
        MenuItemsSource="{x:Bind viewmodel.SidebarItems,Mode=OneWay}"
        MenuItemTemplateSelector="{StaticResource SidebarMenuItemTemplateSelector}"
        SelectedItem="{x:Bind viewmodel.SelectedSidebarItem,Mode=TwoWay}"
        ItemInvoked="SidebarNavigationView_ItemInvoked">

我有包含 3 个不同模板和 3 个数据类型的 MenuItemTemplateSelector

<local:SidebarMenuItemTemplateSelector
            x:Key="SidebarMenuItemTemplateSelector"
            NavItemTemplate="{StaticResource DataTemplateSidebarMenuItem}"
            HeaderTemplate ="{StaticResource DataTemplateGroupSidebarMenuItem}"
            NavSeparatorTemplate="{StaticResource DataTemplateSeparatorMenuItem}"/>

public class SidebarMenuItemTemplateSelector : DataTemplateSelector
{
    public DataTemplate NavItemTemplate { get; set; }
    public DataTemplate NavSeparatorTemplate { get; set; }
    public DataTemplate HeaderTemplate { get; set; }

    protected override DataTemplate SelectTemplateCore(object item)
    {
        if (item is SeparatorSidebarItemviewmodel)
        {
            return NavSeparatorTemplate;
        }
        else if (item is GroupSidebarItemviewmodel)
        {
            return HeaderTemplate;
        }
        return NavItemTemplate;
    }
}

每个数据模板看起来像

<DataTemplate x:Key="DataTemplateSidebarMenuItem" x:DataType="sidebar:FolderSidebarItemviewmodelBase">
     <muxc:NavigationViewItem>
                <Grid>
                    Some elements
                </Grid>
         </muxc:NavigationViewItem>
</DataTemplate>

<DataTemplate x:Key="DataTemplateGroupSidebarMenuItem" x:DataType="sidebar:GroupSidebarItemviewmodel">
        <muxc:NavigationViewItem>
                    <Grid>
                        Some elements including toggle(collpse) button
                    </Grid>
             </muxc:NavigationViewItem>
 </DataTemplate>

<DataTemplate x:Key="DataTemplateSeparatorMenuItem" x:DataType="sidebar:SeparatorSidebarItemviewmodel">
                <muxc:NavigationViewItemSeparator/>
 </DataTemplate>

问题是:我在组内有文件夹,现在我将所有内容都实现为 NavigationMenuItem,因此当我选择其中包含一些文件夹的组项时,它崩溃了,因为它无法移动聚焦到一个文件夹。

注意:我的文件夹数据类型(基本上是 MenuItem)有一个属性“IsGroup”

需要解决方案:我希望我的文件夹在未分组的情况下看起来像 NavigationMenuItem,如果 IsGroup 属性为 true,我希望我的文件夹在 NavigationMenuItemHeader(group) 内部查看。

如果您能提供帮助,那就太好了。提前致谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)