43 lines
1.4 KiB
C#
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();
|
|
}
|
|
}
|