diff --git a/Bitvault.Avalonia/AllNavigationView.axaml b/Bitvault.Avalonia/AllNavigationView.axaml
index 3ad6c08..b534f07 100644
--- a/Bitvault.Avalonia/AllNavigationView.axaml
+++ b/Bitvault.Avalonia/AllNavigationView.axaml
@@ -27,6 +27,7 @@
+
diff --git a/Bitvault.Avalonia/App.axaml.cs b/Bitvault.Avalonia/App.axaml.cs
index e57e8b2..9148021 100644
--- a/Bitvault.Avalonia/App.axaml.cs
+++ b/Bitvault.Avalonia/App.axaml.cs
@@ -105,10 +105,11 @@ public partial class App : Application
services.AddTemplate("ContentItemCollection");
services.AddHandler();
- services.AddTemplate();
services.AddTemplate("LockerHeader");
-
+ services.AddTemplate();
services.AddTemplate();
+ services.AddTemplate();
+
services.AddTemplate("LockerItemCategoryCollection");
services.AddTemplate();
@@ -116,6 +117,7 @@ public partial class App : Application
services.AddTemplate();
services.AddTemplate("Item");
+
services.AddHandler();
services.AddTemplate("ItemCommandHeader");
diff --git a/Bitvault.Avalonia/ArchiveNavigationView.axaml b/Bitvault.Avalonia/ArchiveNavigationView.axaml
index 2670afb..2d922f0 100644
--- a/Bitvault.Avalonia/ArchiveNavigationView.axaml
+++ b/Bitvault.Avalonia/ArchiveNavigationView.axaml
@@ -27,6 +27,7 @@
+
diff --git a/Bitvault.Avalonia/BackActionView.axaml b/Bitvault.Avalonia/BackActionView.axaml
new file mode 100644
index 0000000..a6ab3e6
--- /dev/null
+++ b/Bitvault.Avalonia/BackActionView.axaml
@@ -0,0 +1,42 @@
+
+
+
+ 40
+ 36
+
+
+
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Bitvault.Avalonia/BackActionView.axaml.cs b/Bitvault.Avalonia/BackActionView.axaml.cs
new file mode 100644
index 0000000..0441f4d
--- /dev/null
+++ b/Bitvault.Avalonia/BackActionView.axaml.cs
@@ -0,0 +1,9 @@
+using Avalonia.Controls;
+
+namespace Bitvault.Avalonia;
+
+public partial class BackActionView : UserControl
+{
+ public BackActionView() =>
+ InitializeComponent();
+}
diff --git a/Bitvault.Avalonia/CreateItemActionView.axaml b/Bitvault.Avalonia/CreateItemActionView.axaml
index c8740f6..0ed4660 100644
--- a/Bitvault.Avalonia/CreateItemActionView.axaml
+++ b/Bitvault.Avalonia/CreateItemActionView.axaml
@@ -30,6 +30,7 @@
+
diff --git a/Bitvault.Avalonia/ItemCategoryNavigationView.axaml b/Bitvault.Avalonia/ItemCategoryNavigationView.axaml
index 397e0cd..581458f 100644
--- a/Bitvault.Avalonia/ItemCategoryNavigationView.axaml
+++ b/Bitvault.Avalonia/ItemCategoryNavigationView.axaml
@@ -4,4 +4,31 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="using:Bitvault"
x:DataType="vm:ItemCategoryNavigationViewModel"
- Content="{Binding Name}" />
+ Content="{Binding Name}"
+ IsSelected="{Binding Selected, Mode=TwoWay}">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Bitvault.Avalonia/ItemCategoryNavigationView.axaml.cs b/Bitvault.Avalonia/ItemCategoryNavigationView.axaml.cs
index 20aace9..90e45b8 100644
--- a/Bitvault.Avalonia/ItemCategoryNavigationView.axaml.cs
+++ b/Bitvault.Avalonia/ItemCategoryNavigationView.axaml.cs
@@ -2,7 +2,7 @@ using Avalonia.Controls;
namespace Bitvault.Avalonia;
-public partial class ItemCategoryNavigationView : UserControl
+public partial class ItemCategoryNavigationView : ListBoxItem
{
public ItemCategoryNavigationView() =>
InitializeComponent();
diff --git a/Bitvault.Avalonia/LockerView.axaml b/Bitvault.Avalonia/LockerView.axaml
index 9660115..e62c6c6 100644
--- a/Bitvault.Avalonia/LockerView.axaml
+++ b/Bitvault.Avalonia/LockerView.axaml
@@ -13,7 +13,7 @@
Grid.Row="0"
Grid.ColumnSpan="3"
Height="44"
- Margin="8,0,0,0">
+ Margin="4,2,0,0">
diff --git a/Bitvault.Avalonia/StarredNavigationView.axaml b/Bitvault.Avalonia/StarredNavigationView.axaml
index c4e6e4b..e4ecb63 100644
--- a/Bitvault.Avalonia/StarredNavigationView.axaml
+++ b/Bitvault.Avalonia/StarredNavigationView.axaml
@@ -27,6 +27,7 @@
+
diff --git a/Bitvault/BackActionViewModel.cs b/Bitvault/BackActionViewModel.cs
new file mode 100644
index 0000000..4ff4030
--- /dev/null
+++ b/Bitvault/BackActionViewModel.cs
@@ -0,0 +1,20 @@
+using CommunityToolkit.Mvvm.ComponentModel;
+using CommunityToolkit.Mvvm.Input;
+using Toolkit.Foundation;
+
+namespace Bitvault;
+
+public partial class BackActionViewModel(IServiceProvider provider,
+ IServiceFactory factory,
+ IMediator mediator,
+ IPublisher publisher,
+ ISubscription subscriber,
+ IDisposer disposer) : Observable(provider, factory, mediator, publisher, subscriber, disposer)
+{
+ [ObservableProperty]
+ private int index = 0;
+
+ [RelayCommand]
+ public void Invoke() => Publisher.Publish(Notify.As(new Search(Value)),
+ nameof(ItemCollectionViewModel));
+}
\ No newline at end of file
diff --git a/Bitvault/ItemCategoryCollectionViewModel.cs b/Bitvault/ItemCategoryCollectionViewModel.cs
index 1ae47c3..60b8289 100644
--- a/Bitvault/ItemCategoryCollectionViewModel.cs
+++ b/Bitvault/ItemCategoryCollectionViewModel.cs
@@ -19,7 +19,7 @@ public partial class ItemCategoryCollectionViewModel(IServiceProvider provider,
{
Publisher.Publish(Notify.As(Factory.Create(new List
{
-
+ Factory.Create(),
})));
return base.OnActivated();
diff --git a/Bitvault/ItemCategoryNavigationViewModel.cs b/Bitvault/ItemCategoryNavigationViewModel.cs
index e40ebec..5040f2d 100644
--- a/Bitvault/ItemCategoryNavigationViewModel.cs
+++ b/Bitvault/ItemCategoryNavigationViewModel.cs
@@ -9,9 +9,20 @@ public partial class ItemCategoryNavigationViewModel(IServiceProvider provider,
IPublisher publisher,
ISubscription subscriber,
IDisposer disposer,
- string name) :
- Observable(provider, factory, mediator, publisher, subscriber, disposer)
+ NamedComponent named,
+ string name,
+ bool selected = false) :
+ Observable(provider, factory, mediator, publisher, subscriber, disposer),
+ ISelectable,
+ IRemovable
{
[ObservableProperty]
private string name = name;
+
+ [ObservableProperty]
+ private string named = $"{named}";
+
+ [ObservableProperty]
+ private bool selected = selected;
+
}
diff --git a/Bitvault/ItemCollectionViewModel.cs b/Bitvault/ItemCollectionViewModel.cs
index 04e9d28..d6cb474 100644
--- a/Bitvault/ItemCollectionViewModel.cs
+++ b/Bitvault/ItemCollectionViewModel.cs
@@ -6,7 +6,8 @@ namespace Bitvault;
public partial class ItemCollectionViewModel :
ObservableCollection,
INotificationHandler>,
- INotificationHandler>
+ INotificationHandler>,
+ IBackStack
{
private LockerViewModelConfiguration configuration;
diff --git a/Bitvault/SearchLockerActionViewModel.cs b/Bitvault/SearchLockerActionViewModel.cs
index 67a29f9..de8785b 100644
--- a/Bitvault/SearchLockerActionViewModel.cs
+++ b/Bitvault/SearchLockerActionViewModel.cs
@@ -14,21 +14,6 @@ public partial class SearchLockerActionViewModel(IServiceProvider provider,
[ObservableProperty]
private int index = 2;
- [RelayCommand]
- public void Invoke() => Publisher.Publish(Notify.As(new Search(Value)),
- nameof(ItemCollectionViewModel));
-}
-
-public partial class BackContainerActionViewModel(IServiceProvider provider,
- IServiceFactory factory,
- IMediator mediator,
- IPublisher publisher,
- ISubscription subscriber,
- IDisposer disposer) : Observable(provider, factory, mediator, publisher, subscriber, disposer)
-{
- [ObservableProperty]
- private int index = 2;
-
[RelayCommand]
public void Invoke() => Publisher.Publish(Notify.As(new Search(Value)),
nameof(ItemCollectionViewModel));