using CommunityToolkit.Mvvm.ComponentModel; using Toolkit.Foundation; namespace Wallet; [Notification(typeof(NotifyEventArgs>), nameof(Value))] public abstract partial class FilterNavigationViewModel(IServiceProvider provider, IServiceFactory factory, IMediator mediator, IPublisher publisher, ISubscriber subscriber, IDisposer disposer, int key, string value) : ObservableCollection(provider, factory, mediator, publisher, subscriber, disposer, key, value), INavigationViewModel, INotificationHandler>, INotificationHandler>, INotificationHandler>> { [ObservableProperty] private bool isActivated; [ObservableProperty] private bool isSelected; public Task Handle(NotifyEventArgs> args) { if (args.Sender is Item item) { Key = item.Value; } return Task.CompletedTask; } public Task Handle(DeactivatedEventArgs args) { IsSelected = false; IsActivated = false; return Task.CompletedTask; } public Task Handle(ActivatedEventArgs args) { IsActivated = true; return Task.CompletedTask; } } [Notification(typeof(NotifyEventArgs>), nameof(Value))] public abstract partial class FilterNavigationViewModel(IServiceProvider provider, IServiceFactory factory, IMediator mediator, IPublisher publisher, ISubscriber subscriber, IDisposer disposer, int key, string value) : ObservableCollection(provider, factory, mediator, publisher, subscriber, disposer, key, value), INavigationViewModel, INotificationHandler>, INotificationHandler> where TWalletNavigation : INavigationViewModel { [ObservableProperty] private bool isActivated; [ObservableProperty] private bool isSelected; public Task Handle(DeactivatedEventArgs args) { IsSelected = false; IsActivated = false; return Task.CompletedTask; } public Task Handle(ActivatedEventArgs args) { IsActivated = true; return Task.CompletedTask; } }