78 lines
3.3 KiB
C#
Raw Normal View History

2025-08-15 15:25:44 +08:00
using System.Windows;
using DI_Electrical.ViewModels;
using DI_Electrical.Views;
using Prism.Events;
using Prism.Ioc;
using Prism.Services.Dialogs;
using Prism.Unity;
2025-09-04 18:28:02 +08:00
using SWS.Commons;
using SWS.Service;
using SWS.WPF.ViewModels;
using SWS.WPF.Views;
2025-08-15 15:25:44 +08:00
using Unity;
namespace DI_Electrical
{
/// <summary>
/// App.xaml 的交互逻辑
/// </summary>
2025-09-04 18:28:02 +08:00
public partial class App : Prism.Unity.PrismApplication
2025-08-15 15:25:44 +08:00
{
protected override Window CreateShell()
{
2025-09-04 18:28:02 +08:00
return GlobalObject._prismContainer.Resolve<MainWindow>();
2025-08-15 15:25:44 +08:00
}
protected override void InitializeShell(Window shell)
{
2025-09-04 18:28:02 +08:00
var login = GlobalObject._prismContainer.Resolve<Login>();
2025-08-15 15:25:44 +08:00
login.ShowDialog();
if (GlobalObject.userInfo == null)
{
Application.Current?.Shutdown();
return;
}
2025-09-04 18:28:02 +08:00
var project = GlobalObject._prismContainer.Resolve<Views.Project>();
2025-08-15 15:25:44 +08:00
project.ShowDialog();
if (GlobalObject.curProject == null)
{
Application.Current?.Shutdown();
return;
}
base.InitializeShell(shell);
}
protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
2025-09-04 18:28:02 +08:00
//GlobalObject._prismContainer = new DryIocContainerExtension();
GlobalObject._prismContainer = (IContainerExtension)containerRegistry;
2025-08-15 15:25:44 +08:00
2025-09-04 18:28:02 +08:00
GlobalObject._prismContainer.RegisterForNavigation<MainWindow, MainWindowViewModel>();
GlobalObject._prismContainer.RegisterForNavigation<Login, LoginViewModel>();
GlobalObject._prismContainer.RegisterForNavigation<Config, ConfigViewModel>();
GlobalObject._prismContainer.RegisterForNavigation<Views.Project, ViewModels.ProjectViewModel>();
GlobalObject._prismContainer.RegisterDialog<DialogTest, DialogTestViewModel>();
GlobalObject._prismContainer.RegisterDialog<DialogSignalManagement, DialogSignalManagementViewModel>();
GlobalObject._prismContainer.RegisterDialog<DialogSignalNotice, DialogSignalNoticeViewModel>();
GlobalObject._prismContainer.RegisterDialog<DialogSignalPropertyhisAndLogs, DialogSignalPropertyhisAndLogsViewModel>();
GlobalObject._prismContainer.RegisterDialog<DialogSignalSelect, DialogSignalSelectViewModel>();
GlobalObject._prismContainer.RegisterDialog<DialogAllOutputSignal, DialogAllOutputSignalViewModel>();
GlobalObject._prismContainer.RegisterDialog<DialogInput, DialogInputViewModel>();
2025-08-15 15:25:44 +08:00
2025-09-04 18:28:02 +08:00
GlobalObject._prismContainer.Register<IDialogService, DialogService>();
GlobalObject.container = new UnityContainer();
GlobalObject.container.RegisterSingleton<IEventAggregator, EventAggregator>();
GlobalObject.container.RegisterSingleton<HttpService>();
GlobalObject.container.RegisterSingleton<ConfigService>();
GlobalObject.container.RegisterSingleton<LoginService>();
GlobalObject.container.RegisterSingleton<UserService>();
GlobalObject.container.RegisterSingleton<ProjectService>();
GlobalObject.container.RegisterSingleton<DataItemService>();
GlobalObject.container.RegisterSingleton<WireGroupService>();
2025-08-15 15:25:44 +08:00
}
}
}