Files
Walleby/Bitvault.Avalonia/ItemNavigationView.axaml
T
2024-05-29 21:02:28 +01:00

62 lines
2.7 KiB
XML

<ListBoxItem
x:Class="Bitvault.Avalonia.ItemNavigationView"
xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="using:Bitvault"
x:DataType="vm:ItemNavigationViewModel">
<ListBoxItem.Resources>
<SolidColorBrush x:Key="StarredIconForegroundBrush" Color="#FFEDB120" />
</ListBoxItem.Resources>
<Interaction.Behaviors>
<AttachedBehaviour>
<ConditionAction>
<ConditionAction.Condition>
<ConditionalExpression ForwardChaining="And">
<ComparisonCondition LeftOperand="{Binding $parent[ListBoxItem].IsSelected}" RightOperand="True" />
</ConditionalExpression>
</ConditionAction.Condition>
<NavigateAction
Region="{Binding Named, StringFormat='{}{0}:Content'}"
Route="Item"
Scope="self">
<Parameter Key="State" Value="{x:Static vm:ItemState.Read}" />
<Parameter Key="Name" Value="{Binding Name}" />
<Parameter Key="Archived" Value="{Binding Archived}" />
<Parameter Key="Favourite" Value="{Binding Favourite}" />
</NavigateAction>
</ConditionAction>
</AttachedBehaviour>
<DataTriggerBehavior Binding="{Binding $parent[ListBoxItem].IsSelected}" Value="True">
<NavigateAction
Region="{Binding Named, StringFormat='{}{0}:Content'}"
Route="Item"
Scope="self">
<Parameter Key="Name" Value="{Binding Name}" />
<Parameter Key="Immutable" Value="{x:Static vm:ItemState.Read}" />
<Parameter Key="Archived" Value="{Binding Archived}" />
<Parameter Key="Favourite" Value="{Binding Favourite}" />
</NavigateAction>
</DataTriggerBehavior>
</Interaction.Behaviors>
<Grid Background="Transparent" ColumnDefinitions="Auto,*">
<PersonPicture
Grid.Column="0"
Height="34"
DisplayName="{Binding Name}" />
<TextBlock
Grid.Column="0"
Margin="0,0,-2,10"
HorizontalAlignment="Right"
VerticalAlignment="Bottom"
FontFamily="{DynamicResource FluentThemeFontFamily}"
FontSize="16"
Foreground="{DynamicResource StarredIconForegroundBrush}"
IsVisible="{Binding Favourite}"
Text="&#xEF60;" />
<StackPanel Grid.Column="1" Margin="12,12,6,12">
<TextBlock FontWeight="SemiBold" Text="{Binding Name}" />
<TextBlock Opacity="0.7" Text="{Binding Name}" />
</StackPanel>
</Grid>
</ListBoxItem>