extend ConfigurationValueViewModel to write the value back to settings
This commit is contained in:
@@ -7,23 +7,28 @@ public partial class ConfigurationValueViewModel<TConfiguration, TValue>(IServic
|
||||
ISubscriber subscriber,
|
||||
IDisposer disposer,
|
||||
TConfiguration configuration,
|
||||
Func<TConfiguration, TValue> valueDelegate) :
|
||||
IWritableConfiguration<TConfiguration> writer,
|
||||
Func<TConfiguration, TValue?> read,
|
||||
Action<TValue?, TConfiguration> write) :
|
||||
ValueViewModel<TValue>(provider, factory, mediator, publisher, subscriber, disposer),
|
||||
INotificationHandler<ChangedEventArgs<TConfiguration>>
|
||||
where TConfiguration : class
|
||||
{
|
||||
private readonly TConfiguration configuration = configuration;
|
||||
|
||||
private readonly Func<TConfiguration, TValue> valueDelegate = valueDelegate;
|
||||
|
||||
public Task Handle(ChangedEventArgs<TConfiguration> args)
|
||||
{
|
||||
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
protected override void OnChanged(TValue? value)
|
||||
{
|
||||
writer.Write(args => write(value, args));
|
||||
base.OnChanged(value);
|
||||
}
|
||||
|
||||
public override Task OnActivated()
|
||||
{
|
||||
Value = valueDelegate(configuration);
|
||||
Value = read(configuration);
|
||||
return base.OnActivated();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user