【发布时间】:2018-05-04 17:57:21
【问题描述】:
我有一个 NavigationView 和一些在后面的代码中生成的 NavigationViewItems。 从代码中,我试图选择一个 NavigationViewItem,它是在启动时向用户显示的默认项,但我遇到了一种奇怪的行为 (如果您选择在 xaml 中生成的 NavigationViewItem,则不会发生此行为)。
当我启动应用程序时,我看不到选择(NavigationViewItem 左侧的强调色矩形),但是当我单击另一个 NavigationViewItem 时,矩形会显示并启动将其从旧 NavigationViewItem 移动到新的。
我遵循了在文档中找到的相同代码,但在文档中他们选择了在 xaml 中生成的 NavigationViewItem。 https://docs.microsoft.com/en-us/windows/uwp/design/controls-and-patterns/navigationview
这里是重现问题的代码(项目最低版本和目标版本:Win10 FCU Build 16299)
XAML:
<NavigationView x:Name="navView" Loaded="navView_Loaded">
</NavigationView>
<Button Content="Select Mail" Click="button_Click" HorizontalAlignment="Center"/>
c#:
private void navView_Loaded(object sender, RoutedEventArgs e)
{
navView.MenuItems.Add(new NavigationViewItem()
{ Content = "Home", Icon = new SymbolIcon(Symbol.Home), Tag = "home" });
navView.MenuItems.Add(new NavigationViewItem()
{ Content = "My content", Icon = new SymbolIcon(Symbol.Folder), Tag = "content" });
navView.MenuItems.Add(new NavigationViewItem()
{ Content = "Mail", Icon = new SymbolIcon(Symbol.Mail), Tag = "mail" });
foreach (NavigationViewItemBase item in navView.MenuItems)
{
if (item is NavigationViewItem && item.Tag.ToString() == "home")
{
navView.SelectedItem = item;
break;
}
}
}
private void button_Click(object sender, RoutedEventArgs e)
{
navView.SelectedItem = navView.MenuItems.ElementAt(2);
}
【问题讨论】: