Files
Walleby/Bitvault.Avalonia/VaultNavigationView.axaml
T
TheXamlGuy 5d75023384 UI
2024-05-04 22:35:11 +01:00

65 lines
3.2 KiB
XML

<NavigationViewItem
x:Class="Bitvault.Avalonia.VaultNavigationView"
xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="using:Bitvault"
x:Name="NavigationViewItem"
x:DataType="vm:VaultNavigationViewModel"
Content="{Binding Name}"
IsExpanded="{Binding Expanded, Mode=TwoWay}"
IsSelected="{Binding Selected}"
MenuItemsSource="{Binding}"
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 Context="Main" Route="OpenVault" />
<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>
<NavigateAction Context="Main" Route="Vault" />
<ChangePropertyAction
PropertyName="SelectsOnInvoked"
TargetObject="{Binding #NavigationViewItem}"
Value="False" />
<SelectNavigationViewItemAction />
</ConditionAction>
</DataTriggerBehavior>
<NavigationViewItemInvokedBehaviour SelectsChildOnInvoked="True">
<ConditionAction>
<ConditionAction.Condition>
<ConditionalExpression ForwardChaining="And">
<ComparisonCondition LeftOperand="{Binding Opened}" RightOperand="False" />
<ComparisonCondition LeftOperand="{Binding #NavigationViewItem.IsChildSelected}" RightOperand="False" />
</ConditionalExpression>
</ConditionAction.Condition>
<NavigateAction Context="Main" Route="OpenVault" />
</ConditionAction>
<ConditionAction>
<ConditionAction.Condition>
<ConditionalExpression ForwardChaining="And">
<ComparisonCondition LeftOperand="{Binding Opened}" RightOperand="True" />
<ComparisonCondition LeftOperand="{Binding #NavigationViewItem.IsChildSelected}" RightOperand="False" />
</ConditionalExpression>
</ConditionAction.Condition>
<NavigateAction Context="Main" Route="Vault" />
</ConditionAction>
</NavigationViewItemInvokedBehaviour>
</Interaction.Behaviors>
</NavigationViewItem>