You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WinUI3新项目中NavigationView子项失效及技术选型疑问求助

问题分析

  • 报错XLS0501:NavigationViewItem的Content属性被多次设置,原因是直接在父NavigationViewItem内部放置子NavigationViewItem时,XAML会默认把这些子元素赋值给父项的Content属性,而父项已经通过Content="Favorites"设置过一次,导致冲突。
  • 需求:在NavigationView中实现带子项的菜单,不想使用WinUI3 Gallery中的NavigationStore(因导航规模小)。
  • 疑问:该继续用WinUI3还是转用UWP?

解决方案

修正子菜单代码

要给NavigationViewItem添加子项,需明确将子项放在NavigationViewItem.MenuItems集合中,而非直接作为父项的子元素。修正后的代码如下:

<Grid>
    <NavigationView x:Name="MyNavigationView">
        <NavigationView.MenuItems>
            <NavigationViewItem Content="Home" Icon="Home"/>
            <NavigationViewItem Content="Favorites" Icon="Favorite">
                <NavigationViewItem.MenuItems>
                    <NavigationViewItem Content="Item 1"/>
                    <NavigationViewItem Content="Item 2"/>
                </NavigationViewItem.MenuItems>
            </NavigationViewItem>
            <!-- 更多带子项的父菜单项 -->
        </NavigationView.MenuItems>
    </NavigationView>
</Grid>

这样可避免Content属性重复赋值的问题,正确渲染带展开/折叠功能的子菜单。

框架选择建议

优先选择WinUI3:

  • WinUI3是微软当前主推的Windows桌面UI框架,支持最新Windows 10/11特性,性能更优,生态持续完善。
  • UWP已不再是微软重点更新方向,后续新功能与优化都会集中在WinUI3上。
  • 小规模导航场景完全不需要NavigationStore,直接监听NavigationView.SelectionChanged事件,手动处理页面切换逻辑即可,实现成本极低。

内容的提问来源于stack exchange,提问作者dotnetdevcsharp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 06:05:12