this allows us to lazily fetch viewmodels created easier during the application startup
This commit is contained in:
@@ -1,10 +1,16 @@
|
|||||||
namespace Hyperbar.Windows.MediaController;
|
namespace Hyperbar.Windows.MediaController;
|
||||||
|
|
||||||
public class MediaControllerViewModelFactory(IServiceFactory service) :
|
public class MediaControllerViewModelFactory(IServiceFactory service, ICache<MediaControllerViewModel> cache) :
|
||||||
IFactory<MediaControllerViewModel?>
|
IFactory<MediaControllerViewModel?>
|
||||||
{
|
{
|
||||||
public MediaControllerViewModel? Create()
|
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,
|
public class MediaControllerWidgetViewModel(ITemplateFactory templateFactory,
|
||||||
IServiceFactory serviceFactory,
|
IServiceFactory serviceFactory,
|
||||||
IMediator mediator,
|
IMediator mediator,
|
||||||
IDisposer disposer) :
|
IDisposer disposer,
|
||||||
ObservableCollectionViewModel<MediaControllerViewModel>(serviceFactory, mediator, disposer),
|
IEnumerable<MediaControllerViewModel> items) :
|
||||||
|
ObservableCollectionViewModel<MediaControllerViewModel>(serviceFactory, mediator, disposer, items),
|
||||||
IWidgetViewModel,
|
IWidgetViewModel,
|
||||||
ITemplatedViewModel
|
ITemplatedViewModel
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user