Improvement to navigation regions

This commit is contained in:
TheXamlGuy
2024-05-09 22:37:36 +01:00
parent c10bd714f2
commit 2307c4839a
9 changed files with 54 additions and 28 deletions
+5 -2
View File
@@ -10,18 +10,21 @@ public partial class VaultContentNavigationViewModel(IServiceProvider provider,
ISubscriber subscriber,
IDisposer disposer,
IContentTemplate template,
NamedComponent named,
string name,
string description) :
ObservableViewModel(provider, factory, mediator, publisher, subscriber, disposer)
{
[ObservableProperty]
private bool selected;
private string? description = description;
[ObservableProperty]
private string? name = name;
[ObservableProperty]
private string? description = description;
private string named = $"{named}";
[ObservableProperty]
private bool selected;
public IContentTemplate Template { get; set; } = template;
}
+14 -10
View File
@@ -12,12 +12,16 @@ public partial class VaultViewModel(IServiceProvider provider,
ISubscriber subscriber,
IDisposer disposer,
IContentTemplate template,
NamedComponent named,
string? filter = null) : ObservableCollectionViewModel<VaultContentNavigationViewModel>(provider, factory, mediator, publisher, subscriber, disposer),
INotificationHandler<Vault<Filter<string>>>
{
[ObservableProperty]
private string? filter = filter;
[ObservableProperty]
private string named = $"{named}";
public IContentTemplate Template { get; set; } = template;
public override async Task Activated()
@@ -32,16 +36,16 @@ public partial class VaultViewModel(IServiceProvider provider,
await base.Deactivated();
}
protected override IEnumerate PrepareEnumeration(object? key) =>
Enumerate<VaultContentNavigationViewModel>.With(new VaultViewModelOptions { Filter = Filter }) with { Key = key };
public async Task Handle(Vault<Filter<string>> args,
CancellationToken cancellationToken = default)
{
if (args.Value is Filter<string> filter)
public async Task Handle(Vault<Filter<string>> args,
CancellationToken cancellationToken = default)
{
Filter = filter.Value;
await Enumerate();
if (args.Value is Filter<string> filter)
{
Filter = filter.Value;
await Enumerate();
}
}
}
protected override IEnumerate PrepareEnumeration(object? key) =>
Enumerate<VaultContentNavigationViewModel>.With(new VaultViewModelOptions { Filter = Filter }) with { Key = key };
}