diff --git a/Bitvault.Avalonia.Desktop/Bitvault.Avalonia.Desktop.csproj b/Bitvault.Avalonia.Desktop/Bitvault.Avalonia.Desktop.csproj
index 28cf11a..89e119b 100644
--- a/Bitvault.Avalonia.Desktop/Bitvault.Avalonia.Desktop.csproj
+++ b/Bitvault.Avalonia.Desktop/Bitvault.Avalonia.Desktop.csproj
@@ -9,7 +9,7 @@
win-x64
-
+
diff --git a/Bitvault.Avalonia/Bitvault.Avalonia.csproj b/Bitvault.Avalonia/Bitvault.Avalonia.csproj
index 87f632f..9329463 100644
--- a/Bitvault.Avalonia/Bitvault.Avalonia.csproj
+++ b/Bitvault.Avalonia/Bitvault.Avalonia.csproj
@@ -15,10 +15,10 @@
-
+
-
+
@@ -30,7 +30,7 @@
runtime; build; native; contentfiles; analyzers; buildtransitive
-
+
diff --git a/Bitvault.Avalonia/CreateItemActionView.axaml b/Bitvault.Avalonia/CreateItemActionView.axaml
index ab517e2..88045ee 100644
--- a/Bitvault.Avalonia/CreateItemActionView.axaml
+++ b/Bitvault.Avalonia/CreateItemActionView.axaml
@@ -36,7 +36,8 @@
Region="{Binding Named, StringFormat='{}{0}:Content'}"
Route="Item"
Scope="self">
-
+
+
diff --git a/Bitvault.Avalonia/ItemCollectionView.axaml b/Bitvault.Avalonia/ItemCollectionView.axaml
index 762ad4f..33cc8e7 100644
--- a/Bitvault.Avalonia/ItemCollectionView.axaml
+++ b/Bitvault.Avalonia/ItemCollectionView.axaml
@@ -13,7 +13,7 @@
SelectionMode="Single">
diff --git a/Bitvault.Avalonia/ItemHeaderView.axaml b/Bitvault.Avalonia/ItemHeaderView.axaml
index fe8c581..2eb2c8f 100644
--- a/Bitvault.Avalonia/ItemHeaderView.axaml
+++ b/Bitvault.Avalonia/ItemHeaderView.axaml
@@ -11,12 +11,20 @@
DisplayName="{Binding Value}" />
+
+
+
+
+
+
+
+
-
+
diff --git a/Bitvault.Avalonia/ItemNavigationView.axaml b/Bitvault.Avalonia/ItemNavigationView.axaml
index def4e4f..f8225ff 100644
--- a/Bitvault.Avalonia/ItemNavigationView.axaml
+++ b/Bitvault.Avalonia/ItemNavigationView.axaml
@@ -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">
@@ -20,8 +19,8 @@
Region="{Binding Named, StringFormat='{}{0}:Content'}"
Route="Item"
Scope="self">
+
-
@@ -32,10 +31,10 @@
Region="{Binding Named, StringFormat='{}{0}:Content'}"
Route="Item"
Scope="self">
-
-
-
-
+
+
+
+
diff --git a/Bitvault.Avalonia/ItemView.axaml b/Bitvault.Avalonia/ItemView.axaml
index 925e1f3..27bb395 100644
--- a/Bitvault.Avalonia/ItemView.axaml
+++ b/Bitvault.Avalonia/ItemView.axaml
@@ -11,6 +11,19 @@
Route="ItemCommandHeader"
Scope="self" />
+
+
+
+
+
+
+
+
+
+
diff --git a/Bitvault/AggerateLockerItemViewModelHandler.cs b/Bitvault/AggerateLockerItemViewModelHandler.cs
index 5b550e3..a2a9050 100644
--- a/Bitvault/AggerateLockerItemViewModelHandler.cs
+++ b/Bitvault/AggerateLockerItemViewModelHandler.cs
@@ -45,5 +45,7 @@ public class AggerateLockerItemViewModelHandler(IMediator mediator,
}
}
}
+
+ var d = cache;
}
}
\ No newline at end of file
diff --git a/Bitvault/CreatedItemHandler.cs b/Bitvault/CreatedItemHandler.cs
index 3f7e23b..add147b 100644
--- a/Bitvault/CreatedItemHandler.cs
+++ b/Bitvault/CreatedItemHandler.cs
@@ -26,7 +26,8 @@ public class CreatedItemHandler(IServiceProvider serviceProvider,
int index = cache.IndexOf(item);
valueStore.Set(item);
- publisher.Publish(Insert.As(index, viewModel), nameof(LockerViewModel));
+ publisher.Publish(Insert.As(index, viewModel),
+ nameof(ItemCollectionViewModel));
}
}
diff --git a/Bitvault/ItemCollectionViewModel.cs b/Bitvault/ItemCollectionViewModel.cs
index d6cb474..b4c65f6 100644
--- a/Bitvault/ItemCollectionViewModel.cs
+++ b/Bitvault/ItemCollectionViewModel.cs
@@ -1,4 +1,5 @@
-using Toolkit.Foundation;
+using CommunityToolkit.Mvvm.ComponentModel;
+using Toolkit.Foundation;
namespace Bitvault;
@@ -27,6 +28,11 @@ public partial class ItemCollectionViewModel :
public IContentTemplate Template { get; set; }
+ public override Task OnDeactivated()
+ {
+ return base.OnDeactivated();
+ }
+
public Task Handle(NotifyEventArgs args)
{
if (args.Value is Filter filter)
diff --git a/Bitvault/ItemContentViewModel.cs b/Bitvault/ItemContentViewModel.cs
index a31656c..635c811 100644
--- a/Bitvault/ItemContentViewModel.cs
+++ b/Bitvault/ItemContentViewModel.cs
@@ -14,7 +14,7 @@ public partial class ItemContentViewModel :
ISubscription subscriber,
IDisposer disposer,
IContentTemplate template,
- bool immutable = true) : base(provider, factory, mediator, publisher, subscriber, disposer)
+ ItemState state = ItemState.Read) : base(provider, factory, mediator, publisher, subscriber, disposer)
{
Template = template;
}
diff --git a/Bitvault/ItemHeaderViewModel.cs b/Bitvault/ItemHeaderViewModel.cs
index 53d8023..f124557 100644
--- a/Bitvault/ItemHeaderViewModel.cs
+++ b/Bitvault/ItemHeaderViewModel.cs
@@ -12,7 +12,7 @@ public partial class ItemHeaderViewModel : Observable,
IItemEntryViewModel
{
[ObservableProperty]
- private bool immutable;
+ private ItemState state;
public ItemHeaderViewModel(IServiceProvider provider,
IServiceFactory factory,
@@ -20,10 +20,10 @@ public partial class ItemHeaderViewModel : Observable,
IPublisher publisher,
ISubscription subscriber,
IDisposer disposer,
- bool immutable,
+ ItemState state,
string? value = null) : base(provider, factory, mediator, publisher, subscriber, disposer, value)
{
- Immutable = immutable;
+ State = state;
Value = value;
Track(nameof(Value), () => Value, newValue => Value = newValue);
@@ -39,21 +39,21 @@ public partial class ItemHeaderViewModel : Observable,
CancellationToken cancellationToken) => Task.FromResult(new ItemHeaderConfiguration { Name = Value! });
public Task Handle(UpdateEventArgs- args) =>
- Task.FromResult(Immutable = false);
+ Task.FromResult(State = ItemState.Write);
public Task Handle(CancelEventArgs
- args)
{
Revert();
- Immutable = true;
+ State = ItemState.Read;
return Task.CompletedTask;
}
public Task Handle(ConfirmEventArgs
- args)
{
Commit();
- Immutable = true;
+ State = ItemState.Read;
return Task.CompletedTask;
}
}
\ No newline at end of file
diff --git a/Bitvault/ItemState.cs b/Bitvault/ItemState.cs
new file mode 100644
index 0000000..1f2e8e1
--- /dev/null
+++ b/Bitvault/ItemState.cs
@@ -0,0 +1,7 @@
+namespace Bitvault;
+
+public enum ItemState
+{
+ Read,
+ Write
+}
diff --git a/Bitvault/ItemViewModel.cs b/Bitvault/ItemViewModel.cs
index aaf5064..ab814cd 100644
--- a/Bitvault/ItemViewModel.cs
+++ b/Bitvault/ItemViewModel.cs
@@ -17,7 +17,7 @@ public partial class ItemViewModel :
private bool favourite;
[ObservableProperty]
- private bool immutable;
+ private ItemState state;
[ObservableProperty]
private string named;
@@ -25,6 +25,8 @@ public partial class ItemViewModel :
[ObservableProperty]
private string name;
+ [ObservableProperty]
+ private bool test;
public ItemViewModel(IServiceProvider provider,
IServiceFactory factory,
IMediator mediator,
@@ -33,20 +35,22 @@ public partial class ItemViewModel :
IDisposer disposer,
IContentTemplate template,
NamedComponent named,
+ ItemState state = ItemState.Read,
+ bool test = false,
string name = "",
- bool immutable = true,
bool favourite = false,
bool archived = false) : base(provider, factory, mediator, publisher, subscriber, disposer)
{
+ Test = test;
Named = $"{named}";
Template = template;
- Immutable = immutable;
+ State = state;
Favourite = favourite;
Archived = archived;
Name = name;
- Add(immutable, name);
- Add(immutable);
+ Add(state, name);
+ Add(state);
}
public IContentTemplate Template { get; set; }
@@ -59,6 +63,7 @@ public partial class ItemViewModel :
Factory.Create(),
})));
+ State = ItemState.Write;
return Task.CompletedTask;
}
@@ -70,6 +75,7 @@ public partial class ItemViewModel :
Factory.Create(),
})));
+ State = ItemState.Read;
return Task.CompletedTask;
}
@@ -82,20 +88,13 @@ public partial class ItemViewModel :
Factory.Create(),
})));
+ State = ItemState.Read;
return Task.CompletedTask;
}
public override Task OnActivated()
{
- if (!Immutable)
- {
- Publisher.Publish(Notify.As(Factory.Create(new List
- {
- Factory.Create(),
- Factory.Create(),
- })));
- }
- else if (Archived)
+ if (Archived)
{
Publisher.Publish(Notify.As(Factory.Create(new List
{
@@ -104,12 +103,23 @@ public partial class ItemViewModel :
}
else
{
- Publisher.Publish(Notify.As(Factory.Create(new List
+ if (State is ItemState.Write)
{
- Factory.Create(Favourite),
- Factory.Create(),
- Factory.Create(),
- })));
+ Publisher.Publish(Notify.As(Factory.Create(new List
+ {
+ Factory.Create(),
+ Factory.Create(),
+ })));
+ }
+ else
+ {
+ Publisher.Publish(Notify.As(Factory.Create(new List
+ {
+ Factory.Create(Favourite),
+ Factory.Create(),
+ Factory.Create(),
+ })));
+ }
}
return base.OnActivated();
diff --git a/Bitvault/ModifiedItemHandler.cs b/Bitvault/ModifiedItemHandler.cs
index 9cfcb44..d408c06 100644
--- a/Bitvault/ModifiedItemHandler.cs
+++ b/Bitvault/ModifiedItemHandler.cs
@@ -28,7 +28,8 @@ public class ModifiedItemHandler(IServiceProvider serviceProvider,
int newIndex = cache.IndexOf(newItem);
valueStore.Set(newItem);
- publisher.Publish(MoveTo.As(oldIndex, newIndex), nameof(LockerViewModel));
+ publisher.Publish(MoveTo.As(oldIndex, newIndex),
+ nameof(ItemCollectionViewModel));
}
}