获取 NavigationView UWP 中的所有 MenuItems

Get All MenuItems in NavigationView UWP

我想在我的程序中遍历 NavigationView.MenuItems 内的所有元素以找到相似的元素,但是找不到在另一个 MenuItem 内创建的 MenuItem:

    <muxc:NavigationView x:Name="NavView">
            <muxc:NavigationView.MenuItems>
                <muxc:NavigationViewItem x:Uid="navBarButtonHome" Tag="Home" IsSelected="True"/>
                <muxc:NavigationViewItem x:Uid="navBarButtonAdd" Tag="Create">
                    <muxc:NavigationViewItem.MenuItems>
                        <muxc:NavigationViewItem x:Uid="navBarButtonSubNote" Tag="NewNote"/>
                        <muxc:NavigationViewItem x:Uid="navBarButtonSubCategory" Tag="NewCategory"/>
                        <muxc:NavigationViewItem x:Uid="navBarButtonSubStore" Tag="NewStore"/>
                        <muxc:NavigationViewItem x:Uid="navBarButtonSubDuty" Tag="NewDuty"/>
                        <muxc:NavigationViewItem x:Uid="navBarButtonSubCurrency" Tag="NewCurrency"/>
                    </muxc:NavigationViewItem.MenuItems>
                </muxc:NavigationViewItem>
                <muxc:NavigationViewItem x:Uid="navBarButtonTags" Tag="Tags"/>
                <muxc:NavigationViewItem x:Uid="navBarButtonChart" Tag="Chart"/>

            </muxc:NavigationView.MenuItems>
        </muxc:NavigationView>

NavigationView.MenuItems return 除了 MenuItem 中带有标签“Create”的项目(“NewNote”、“NewCategory”等)之外的所有项目。

如何获取所有菜单项 以及那些(“NewNote”、“NewCategory”等)?

NavigationView.MenuItems returns a IList<object>,你应该将每个元素转换为 NavigationViewItem 并检查额外的 MenuItems.

var items = _navigationViewControl.MenuItems;
foreach (var item in items)
{
    var viewItem = item as WinUI.NavigationViewItem;
    if (viewItem.MenuItems.Count > 0)
    {
        ...
    }
}