laatzen/Common/Ui/Common.GUI/ViewModels/VMLocator.cs
2025-01-24 12:10:40 +01:00

43 lines
1.4 KiB
C#

namespace Common.GUI.ViewModels
{
using Common.GUI.ViewModels.Base;
using Common.GUI.ViewModels.Controls;
using Common.GUI.ViewModels.Eregister;
using Common.GUI.ViewModels.Pages;
using Microsoft.Extensions.DependencyInjection;
using System.Windows;
public class VMLocator
{
private static readonly ServiceProvider serviceProvider = ConfigureServices();
public VMLocator() => App.Current.Exit += this.App_Exit;
public MainLayoutVM MainLayoutVM => serviceProvider.GetService<MainLayoutVM>();
public MainMenuVM MainMenuVM => serviceProvider.GetService<MainMenuVM>();
public MainPageVM MainPageVM => serviceProvider.GetService<MainPageVM>();
public EregisterManualProgrammingVM EregisterManualProgrammingVM => serviceProvider.GetService<EregisterManualProgrammingVM>();
private void App_Exit(object sender, ExitEventArgs args)
{
App.Current.Exit -= this.App_Exit;
serviceProvider.Dispose();
}
private static ServiceProvider ConfigureServices()
=> new ServiceCollection()
.AddScoped<MessageHandler>()
.AddTransient<MainLayoutVM>()
.AddTransient<MainMenuVM>()
.AddScoped<MainPageVM>()
.AddScoped<EregisterManualProgrammingVM>()
.BuildServiceProvider();
}
}