From 2a494e1b9478aebbd90d6a63d166a7301486482d Mon Sep 17 00:00:00 2001 From: TheXamlGuy Date: Sun, 14 Jan 2024 20:39:36 +0000 Subject: [PATCH] this allows us to lazily fetch viewmodels created easier during the application startup --- .../MediaControllerViewModelFactory.cs | 10 ++++++++-- .../MediaControllerWidgetViewModel.cs | 5 +++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/Hyperbar.Windows.MediaController/MediaControllerViewModelFactory.cs b/Hyperbar.Windows.MediaController/MediaControllerViewModelFactory.cs index e8c8b22..4973c47 100644 --- a/Hyperbar.Windows.MediaController/MediaControllerViewModelFactory.cs +++ b/Hyperbar.Windows.MediaController/MediaControllerViewModelFactory.cs @@ -1,10 +1,16 @@ namespace Hyperbar.Windows.MediaController; -public class MediaControllerViewModelFactory(IServiceFactory service) : +public class MediaControllerViewModelFactory(IServiceFactory service, ICache cache) : IFactory { public MediaControllerViewModel? Create() { - return service.Create(); + if (service.Create() is MediaControllerViewModel widgetComponentViewModel) + { + cache.Add(widgetComponentViewModel); + return widgetComponentViewModel; + } + + return default; } } diff --git a/Hyperbar.Windows.MediaController/MediaControllerWidgetViewModel.cs b/Hyperbar.Windows.MediaController/MediaControllerWidgetViewModel.cs index 631c70e..c51a45b 100644 --- a/Hyperbar.Windows.MediaController/MediaControllerWidgetViewModel.cs +++ b/Hyperbar.Windows.MediaController/MediaControllerWidgetViewModel.cs @@ -3,8 +3,9 @@ public class MediaControllerWidgetViewModel(ITemplateFactory templateFactory, IServiceFactory serviceFactory, IMediator mediator, - IDisposer disposer) : - ObservableCollectionViewModel(serviceFactory, mediator, disposer), + IDisposer disposer, + IEnumerable items) : + ObservableCollectionViewModel(serviceFactory, mediator, disposer, items), IWidgetViewModel, ITemplatedViewModel {