this allows us to lazily fetch viewmodels created easier during the application startup

This commit is contained in:
TheXamlGuy
2024-01-14 20:39:36 +00:00
parent 80f4d5a702
commit 2a494e1b94
2 changed files with 11 additions and 4 deletions
@@ -1,10 +1,16 @@
namespace Hyperbar.Windows.MediaController;
public class MediaControllerViewModelFactory(IServiceFactory service) :
public class MediaControllerViewModelFactory(IServiceFactory service, ICache<MediaControllerViewModel> cache) :
IFactory<MediaControllerViewModel?>
{
public MediaControllerViewModel? Create()
{
return service.Create<MediaControllerViewModel>();
if (service.Create<MediaControllerViewModel>() is MediaControllerViewModel widgetComponentViewModel)
{
cache.Add(widgetComponentViewModel);
return widgetComponentViewModel;
}
return default;
}
}
@@ -3,8 +3,9 @@
public class MediaControllerWidgetViewModel(ITemplateFactory templateFactory,
IServiceFactory serviceFactory,
IMediator mediator,
IDisposer disposer) :
ObservableCollectionViewModel<MediaControllerViewModel>(serviceFactory, mediator, disposer),
IDisposer disposer,
IEnumerable<MediaControllerViewModel> items) :
ObservableCollectionViewModel<MediaControllerViewModel>(serviceFactory, mediator, disposer, items),
IWidgetViewModel,
ITemplatedViewModel
{