我在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属性而不是索引值。这是因为,如果我更改菜单项的顺序,则不需要返回并更改后面代码中的索引值。
在此先感谢您的帮助。
答案 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 => (FrameworkElement)x.Tag == YOUR_TAG);