简体   繁体   English

获取 NavigationView 中的所有 MenuItems UWP

[英]Get All MenuItems in NavigationView UWP

I would like to iterate through all the elements inside NavigationView.MenuItems in my program to find similar ones, but the MenuItem that was created inside another MenuItem cannot be found:我想遍历我程序中 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 all items except those which contains in MenuItem with tag "Create" ("NewNote", "NewCategory" etc). NavigationView.MenuItems返回所有项目,但 MenuItem 中包含的项目除外,标签为“Create”(“NewNote”、“NewCategory”等)。

How I can get all menuItems with those ("NewNote", "NewCategory" etc)?我如何获得所有菜单项(“NewNote”、“NewCategory”等)?

NavigationView.MenuItems returns a IList<object> , you should cast each element as a NavigationViewItem and check for additional MenuItems . NavigationView.MenuItems返回一个IList<object> ,您应该将每个元素转换为NavigationViewItem并检查其他MenuItems

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM