Bunch of insane work

This commit is contained in:
TheXamlGuy
2024-02-08 22:16:58 +00:00
parent 28d79f77d0
commit 2aeb4d1b54
58 changed files with 547 additions and 326 deletions
@@ -33,7 +33,7 @@ public static class IServiceCollectionExtensions
services.AddKeyedTransient(typeof(IWidgetViewModel), key, contentType);
services.TryAddKeyedTransient(key, (provider, key) => provider.GetService<IWidgetView>()!);
services.AddTransient<IContentTemplateDescriptor>(provider => new ContentTemplateDescriptor { ContentType = contentType, TemplateType = templateType, Key = key });
services.AddTransient<IViewModelTemplateDescriptor>(provider => new ViewModelTemplateDescriptor { ViewModelType = contentType, TemplateType = templateType, Key = key });
return services;
}
@@ -54,8 +54,8 @@ public static class IServiceCollectionExtensions
services.AddKeyedTransient(typeof(IWidgetViewModel), key, contentType);
services.TryAddKeyedTransient(templateType, key);
services.AddTransient<IContentTemplateDescriptor>(provider =>
new ContentTemplateDescriptor { ContentType = contentType,
services.AddTransient<IViewModelTemplateDescriptor>(provider =>
new ViewModelTemplateDescriptor { ViewModelType = contentType,
TemplateType = templateType, Key = key });
return services;
+4 -3
View File
@@ -4,14 +4,15 @@ using CommunityToolkit.Mvvm.Input;
namespace Hyperbar.Widget;
[NotificationHandler(nameof(Id))]
public partial class WidgetButtonViewModel(IServiceFactory serviceFactory,
public partial class WidgetButtonViewModel(IServiceProvider serviceProvider,
IServiceFactory serviceFactory,
IMediator mediator,
IDisposer disposer,
ITemplateFactory templateFactory,
IViewModelTemplateFactory templateFactory,
Guid id,
string? text = null,
string? icon = null,
RelayCommand? invokeCommand = null) : WidgetComponentViewModel(serviceFactory, mediator, disposer, templateFactory)
RelayCommand? invokeCommand = null) : WidgetComponentViewModel(serviceProvider, serviceFactory, mediator, disposer, templateFactory)
{
[ObservableProperty]
private string? icon = icon;
+9 -8
View File
@@ -2,25 +2,26 @@
public partial class WidgetComponentViewModel :
ObservableCollectionViewModel<IWidgetComponentViewModel>,
IWidgetComponentViewModel,
ITemplatedViewModel
IWidgetComponentViewModel
{
public WidgetComponentViewModel(IServiceFactory serviceFactory,
public WidgetComponentViewModel(IServiceProvider serviceProvider,
IServiceFactory serviceFactory,
IMediator mediator,
IDisposer disposer,
ITemplateFactory templateFactory,
IEnumerable<IWidgetComponentViewModel> items) : base(serviceFactory, mediator, disposer, items)
IViewModelTemplateFactory templateFactory,
IEnumerable<IWidgetComponentViewModel> items) : base(serviceProvider, serviceFactory, mediator, disposer, items)
{
TemplateFactory = templateFactory;
}
public WidgetComponentViewModel(IServiceFactory serviceFactory,
public WidgetComponentViewModel(IServiceProvider serviceProvider,
IServiceFactory serviceFactory,
IMediator mediator,
IDisposer disposer,
ITemplateFactory templateFactory) : base(serviceFactory, mediator, disposer)
IViewModelTemplateFactory templateFactory) : base(serviceProvider, serviceFactory, mediator, disposer)
{
TemplateFactory = templateFactory;
}
public ITemplateFactory TemplateFactory { get; private set; }
public IViewModelTemplateFactory TemplateFactory { get; private set; }
}
+4 -3
View File
@@ -4,14 +4,15 @@ using CommunityToolkit.Mvvm.Input;
namespace Hyperbar.Widget;
[NotificationHandler(nameof(Id))]
public partial class WidgetMenuViewModel(IServiceFactory serviceFactory,
public partial class WidgetMenuViewModel(IServiceProvider serviceProvider,
IServiceFactory serviceFactory,
IMediator mediator,
IDisposer disposer,
ITemplateFactory templateFactory,
IViewModelTemplateFactory templateFactory,
Guid id = default,
string? text = null,
string? icon = null,
RelayCommand? command = null) : WidgetComponentViewModel(serviceFactory, mediator, disposer, templateFactory)
RelayCommand? command = null) : WidgetComponentViewModel(serviceProvider, serviceFactory, mediator, disposer, templateFactory)
{
[ObservableProperty]
private IRelayCommand? click = command;
@@ -4,15 +4,16 @@ using CommunityToolkit.Mvvm.Input;
namespace Hyperbar.Widget;
[NotificationHandler(nameof(Id))]
public partial class WidgetSplitButtonViewModel(IServiceFactory serviceFactory,
public partial class WidgetSplitButtonViewModel(IServiceProvider serviceProvider,
IServiceFactory serviceFactory,
IMediator mediator,
IDisposer disposer,
ITemplateFactory templateFactory,
IViewModelTemplateFactory templateFactory,
IEnumerable<IWidgetComponentViewModel> items,
Guid id = default,
string? text = null,
string? icon = null,
RelayCommand? command = null) : WidgetComponentViewModel(serviceFactory, mediator, disposer, templateFactory, items)
RelayCommand? command = null) : WidgetComponentViewModel(serviceProvider, serviceFactory, mediator, disposer, templateFactory, items)
{
[ObservableProperty]
private IRelayCommand? click = command;