如何通过标签以编程方式设置NavigationView.SelectedItem

时间:2019-08-06 06:52:00

标签: c# uwp

我在XAML中拥有

...
    <NavigationView Name="NavView"
                    PaneDisplayMode="LeftCompact"
                    Loaded="NavView_Loaded">
        <NavigationView.MenuItems>
            ...
            <NavigationViewItem Tag="movies" Icon="Folder" Content="Movies" />
            ...
        </NavigationView.MenuItems>
    </NavigationView>
...

在后面的代码中,我想使用NavigationMenuItem的tag属性设置所选菜单项。我知道我可以做类似的事情

NavView.SelectedItem = NavView.MenuItems[3];

但是我希望能够做到这一点,就像我说的那样,使用tag属性而不是索引值。这是因为,如果我更改菜单项的顺序,则不需要返回并更改后面代码中的索引值。

在此先感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您可以简单地编写类似这样的代码...

for (var i=0; i < NavView.MenuItems.Length; i++)
     if (NavView.MenuItems[i].Tag == YOUR_TAG)
         NavView.SelectedItem = NavView.MenuItems[i];

Linq版本

NavView.SelectedItem = NavView.MenuItems.Where(x => (Framework​Element)x.Tag == YOUR_TAG);