extend ConfigurationValueViewModel to write the value back to settings

This commit is contained in:
TheXamlGuy
2024-10-02 18:29:11 +01:00
parent b781f18758
commit 001fdb1404
5 changed files with 18 additions and 236 deletions
@@ -105,6 +105,7 @@ public static class IServiceCollectionExtensions
services.AddTransient<IInitialization, TInitialization>();
return services;
}
public static IServiceCollection AddRange(this IServiceCollection services,
IServiceCollection fromServices)
{
@@ -166,22 +167,24 @@ public static class IServiceCollectionExtensions
}
public static IServiceCollection AddValueTemplate<TConfiguration, TValue, TViewModel, TView>(this IServiceCollection services,
Func<TConfiguration, TValue> valueDelegate,
Func<TConfiguration, TValue> readDelegate,
Action<TValue?, TConfiguration> writeDelegate,
object? key = null,
ServiceLifetime serviceLifetime = ServiceLifetime.Transient,
params object[]? parameters)
{
parameters = [valueDelegate, .. parameters ?? Enumerable.Empty<object?>()];
parameters = [readDelegate, writeDelegate, .. parameters ?? Enumerable.Empty<object?>()];
return AddTemplate<TViewModel, TViewModel, TView>(services, key, serviceLifetime, parameters);
}
public static IServiceCollection AddValueTemplate<TConfiguration, TValue, TViewModel, TViewModelImplementation, TView>(this IServiceCollection services,
Func<TConfiguration, TValue> valueDelegate,
Func<TConfiguration, TValue> readDelegate,
Action<TValue?, TConfiguration> writeDelegate,
object? key = null,
ServiceLifetime serviceLifetime = ServiceLifetime.Transient,
params object[]? parameters)
{
parameters = [valueDelegate, .. parameters ?? Enumerable.Empty<object?>()];
parameters = [readDelegate, writeDelegate, .. parameters ?? Enumerable.Empty<object?>()];
return AddTemplate<TViewModel, TViewModelImplementation, TView>(services, key, serviceLifetime, parameters);
}
}