App.xaml.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. using EEMSMain.Data;
  2. using EEMSMain.Views;
  3. using GlobalData;
  4. using System.IO;
  5. using System.Windows;
  6. using UICommon.CommonContainer;
  7. namespace EEMSMain;
  8. /// <summary>
  9. /// Interaction logic for App.xaml
  10. /// </summary>
  11. public partial class App : PrismApplication
  12. {
  13. protected override Window CreateShell()
  14. {
  15. return Container.Resolve<MainWindow>();
  16. }
  17. protected override void RegisterTypes(IContainerRegistry containerRegistry)
  18. {
  19. containerRegistry.Register<ICommonContainer, CommonContainer>();
  20. containerRegistry.RegisterSingleton<ContainerManager>();
  21. containerRegistry.RegisterSingleton<DeviceCollection>();
  22. }
  23. protected override IModuleCatalog CreateModuleCatalog()
  24. {
  25. return new DirectoryModuleCatalog() { ModulePath = Path.Combine(Environment.CurrentDirectory, "Modules") };
  26. }
  27. }
  28. public class CommonContainer(IRegionManager regionManager,
  29. IModuleManager moduleManager, ContainerManager containerManager) : ICommonContainer
  30. {
  31. private const string _MainReginName = "MainRegion";
  32. string ICommonContainer.MainReginName => _MainReginName;
  33. void ICommonContainer.AddModule(string name)
  34. {
  35. moduleManager.LoadModule(name);
  36. }
  37. void ICommonContainer.AddNavigation(ContainerInfo containerInfo)
  38. {
  39. if (containerInfo.IsHidden)
  40. return;
  41. App.Current.Dispatcher.Invoke(() =>
  42. {
  43. containerManager.Containers.Add(containerInfo.Index, containerInfo);
  44. });
  45. }
  46. void ICommonContainer.RequestNavigation(string name)
  47. {
  48. regionManager.RequestNavigate(_MainReginName, name);
  49. }
  50. }