Я хочу использовать NavigationView
в качестве навигации по вкладкам для моего приложения UWP, поскольку оно имеет соответствующий стиль и хорошо справляется с переполнением.
Теперь я хочу добавить кнопку к каждому NavigationViewItem
справа от ярлыка. Эта кнопка должна быть видна только при выборе предмета.
Я добился добавления кнопки в приведенном ниже коде, но не могу понять, как скрыть кнопку, когда вкладка не выбрана. Я пытался привязать кнопку к bool на моей модели данных, для которой я установил true
на ItemInvoked
, но это не сработало.
<NavigationView x:Name="NavView"
PaneDisplayMode="Top"
OverflowLabelMode="NoLabel"
IsSettingsVisible="False"
IsBackButtonVisible="Collapsed"
MenuItemsSource="{x:Bind TabItems}">
<NavigationView.MenuItemTemplate>
<DataTemplate x:DataType="models:TabNavigationItem">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{x:Bind Text}" VerticalAlignment="Center"></TextBlock>
<Viewbox Width="16" Height="16" VerticalAlignment="Center" Margin="2,0,0,0">
<Button Background="{StaticResource Transparent}" VerticalAlignment="Center">
<FontIcon FontFamily="Segoe MDL2 Assets" Glyph=""></FontIcon>
</Button>
</Viewbox>
</StackPanel>
</DataTemplate>
</NavigationView.MenuItemTemplate>
</NavigationView>
Я посмотрел на Community Toolkit TabView, но так как я сам управляю всей навигацией и мне просто нужен ряд выбираемых элементов, NavigationView
мне больше подойдет.
Заранее спасибо.
Edit:
Я уже пробовал
<Viewbox Width="16" Height="16" VerticalAlignment="Center" Margin="2,0,0,0" Visibility="{x:Bind Selected, Converter={StaticResource BoolToVisibilityConverter}, Mode="OneWay"}">
И
private void NavView_OnItemInvoked(NavigationView sender, NavigationViewItemInvokedEventArgs args)
{
if (args.InvokedItem is TabNavigationItem t)
{
t.Selected = true;
}
Bindings.Update();
}