Files
Walleby/Bitvault.Avalonia/LockerNavigationView.axaml
T
2024-05-27 16:08:18 +01:00

65 lines
3.1 KiB
XML

<NavigationViewItem
x:Class="Bitvault.Avalonia.LockerNavigationView"
xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="using:Bitvault"
x:Name="NavigationViewItem"
x:DataType="vm:LockerNavigationViewModel"
Content="{Binding Name}"
IsExpanded="{Binding Expanded}"
IsSelected="{Binding Selected}"
MenuItemsSource="{Binding}"
NavigationViewItemExtension.IsItemClickEnabled="True"
SelectsOnInvoked="True">
<Interaction.Behaviors>
<DataTriggerBehavior Binding="{Binding Opened}" Value="False">
<ConditionAction>
<ConditionAction.Condition>
<ConditionalExpression ForwardChaining="And">
<ComparisonCondition LeftOperand="{Binding Selected}" RightOperand="True" />
</ConditionalExpression>
</ConditionAction.Condition>
<NavigateAction Region="Main" Route="OpenLocker" />
<ChangePropertyAction
PropertyName="SelectsOnInvoked"
TargetObject="{Binding #NavigationViewItem}"
Value="True" />
</ConditionAction>
</DataTriggerBehavior>
<DataTriggerBehavior Binding="{Binding Opened}" Value="True">
<ConditionAction>
<ConditionAction.Condition>
<ConditionalExpression ForwardChaining="And">
<ComparisonCondition LeftOperand="{Binding Selected}" RightOperand="True" />
</ConditionalExpression>
</ConditionAction.Condition>
<ChangePropertyAction
PropertyName="SelectsOnInvoked"
TargetObject="{Binding #NavigationViewItem}"
Value="False" />
<InvokeNavigationViewItemAction />
</ConditionAction>
</DataTriggerBehavior>
<AttachedEventTriggerBehaviour RoutedEvent="{x:Static NavigationViewItemExtension.ItemClickEvent}">
<ConditionAction>
<ConditionAction.Condition>
<ConditionalExpression ForwardChaining="And">
<ComparisonCondition LeftOperand="{Binding Opened}" RightOperand="False" />
</ConditionalExpression>
</ConditionAction.Condition>
<NavigateAction Region="Main" Route="OpenLocker" />
</ConditionAction>
<ConditionAction>
<ConditionAction.Condition>
<ConditionalExpression ForwardChaining="And">
<ComparisonCondition LeftOperand="{Binding Opened}" RightOperand="True" />
<ComparisonCondition LeftOperand="{Binding Activated}" RightOperand="False" />
</ConditionalExpression>
</ConditionAction.Condition>
<NavigateAction Region="Main" Route="Locker" />
<InvokeNavigationViewItemAction />
</ConditionAction>
</AttachedEventTriggerBehaviour>
</Interaction.Behaviors>
</NavigationViewItem>