Attempt to fix some wonky selection bugs

This commit is contained in:
TheXamlGuy
2024-05-28 22:41:35 +01:00
parent 0e8ad91de7
commit a77240d83b
15 changed files with 94 additions and 45 deletions
+3 -3
View File
@@ -15,10 +15,10 @@
<Compile Remove="Assets\Class1.cs" />
</ItemGroup>
<ItemGroup>
<PackageReference Condition="$(DefineConstants.Contains(ENABLE_XAML_HOT_RELOAD))" Include="Avalonia.Markup.Xaml.Loader" Version="11.2.999-cibuild0048140-alpha" />
<PackageReference Condition="$(DefineConstants.Contains(ENABLE_XAML_HOT_RELOAD))" Include="Avalonia.Markup.Xaml.Loader" Version="11.1.0-beta2" />
<PackageReference Condition="$(DefineConstants.Contains(ENABLE_XAML_HOT_RELOAD))" Include="HotAvalonia" Version="1.1.1" />
<PackageReference Include="HotAvalonia.Extensions" Version="1.1.1" PrivateAssets="All" />
<PackageReference Include="Avalonia.Fonts.Inter" Version="11.2.999-cibuild0048140-alpha" />
<PackageReference Include="Avalonia.Fonts.Inter" Version="11.1.0-beta2" />
<PackageReference Include="Avalonia.Labs.Controls" Version="11.0.10.1" />
<PackageReference Include="CommunityToolkit.Mvvm" Version="8.2.2" />
<PackageReference Include="FluentAvaloniaUI" Version="2.1.0-preview5" />
@@ -30,7 +30,7 @@
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<!--Condition below is needed to remove Avalonia.Diagnostics package from build output in Release configuration.-->
<PackageReference Condition="'$(Configuration)' == 'Debug'" Include="Avalonia.Diagnostics" Version="11.2.999-cibuild0048140-alpha" />
<PackageReference Condition="'$(Configuration)' == 'Debug'" Include="Avalonia.Diagnostics" Version="11.1.0-beta2" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Bitvault\Bitvault.csproj" />
+2 -1
View File
@@ -36,7 +36,8 @@
Region="{Binding Named, StringFormat='{}{0}:Content'}"
Route="Item"
Scope="self">
<Parameter Key="Immutable" Value="{x:False}" />
<Parameter Key="test" Value="{x:True}" />
<Parameter Key="State" Value="{x:Static vm:ItemState.Write}" />
</NavigateAction>
</EventTriggerBehavior>
</Interaction.Behaviors>
+1 -1
View File
@@ -13,7 +13,7 @@
SelectionMode="Single">
<ListBox.Styles>
<Style Selector="ListBoxItem">
<Setter Property="IsSelected" Value="{ReflectionBinding Selected, Mode=TwoWay}" />
<Setter Property="IsSelected" Value="{ReflectionBinding Selected}" />
</Style>
</ListBox.Styles>
</ListBox>
+12 -3
View File
@@ -11,12 +11,20 @@
DisplayName="{Binding Value}" />
<TextBox
MaxWidth="360"
IsReadOnly="{Binding Immutable, Mode=TwoWay}"
Text="{Binding Value, UpdateSourceTrigger=PropertyChanged}"
Text="{Binding Value}"
TextAlignment="Center"
Watermark="Enter name">
<Interaction.Behaviors>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.Read}">
<AddClassAction ClassName="Read" RemoveIfExists="True" />
</DataTriggerBehavior>
<DataTriggerBehavior Binding="{Binding State}" Value="{x:Static vm:ItemState.Write}">
<RemoveClassAction ClassName="Read" />
</DataTriggerBehavior>
</Interaction.Behaviors>
<TextBox.Styles>
<Style Selector="TextBox[IsReadOnly=True]">
<Style Selector="TextBox.Read">
<Setter Property="IsReadOnly" Value="True" />
<Setter Property="BorderBrush" Value="Transparent" />
<Setter Property="Background" Value="Transparent" />
<Style Selector="^:pointerover">
@@ -37,6 +45,7 @@
</Style>
</Style>
</Style>
<Style Selector="TextBox.Write" />
</TextBox.Styles>
</TextBox>
</StackPanel>
+6 -7
View File
@@ -3,8 +3,7 @@
xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="using:Bitvault"
x:DataType="vm:ItemNavigationViewModel"
IsSelected="{Binding Selected, Mode=TwoWay}">
x:DataType="vm:ItemNavigationViewModel">
<ListBoxItem.Resources>
<SolidColorBrush x:Key="StarredIconForegroundBrush" Color="#FFEDB120" />
</ListBoxItem.Resources>
@@ -20,8 +19,8 @@
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="Immutable" Value="{x:True}" />
<Parameter Key="Archived" Value="{Binding Archived}" />
<Parameter Key="Favourite" Value="{Binding Favourite}" />
</NavigateAction>
@@ -32,10 +31,10 @@
Region="{Binding Named, StringFormat='{}{0}:Content'}"
Route="Item"
Scope="self">
<Parameter Key="Name" Value="{Binding Name}" />
<Parameter Key="Immutable" Value="{x:True}" />
<Parameter Key="Archived" Value="{Binding Archived}" />
<Parameter Key="Favourite" Value="{Binding Favourite}" />
<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>
+13
View File
@@ -11,6 +11,19 @@
Route="ItemCommandHeader"
Scope="self" />
</AttachedBehaviour>
<DataTriggerBehavior
Binding="{Binding State}"
ComparisonCondition="Equal"
Value="{x:Static vm:ItemState.Read}">
<ConditionAction>
<ConditionAction.Condition>
<ConditionalExpression ForwardChaining="And">
<ComparisonCondition LeftOperand="{Binding Test}" RightOperand="True" />
</ConditionalExpression>
</ConditionAction.Condition>
<NavigateBackAction Region="Left" />
</ConditionAction>
</DataTriggerBehavior>
</Interaction.Behaviors>
<ScrollViewer Padding="12,12,12,0">
<ItemsControl ItemTemplate="{ReflectionBinding Template}" ItemsSource="{Binding}">