App.xaml.cs 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. using EEMSMain.Data;
  2. using EEMSMain.Views;
  3. using System.IO;
  4. using System.Windows;
  5. using System.Windows.Input;
  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. }
  22. protected override IModuleCatalog CreateModuleCatalog()
  23. {
  24. return new DirectoryModuleCatalog() { ModulePath = Path.Combine(Environment.CurrentDirectory, "Modules") };
  25. }
  26. }
  27. public class CommonContainer(IRegionManager regionManager,
  28. IModuleManager moduleManager, ContainerManager containerManager) : ICommonContainer
  29. {
  30. public string MainReginName => "MainRegion";
  31. void ICommonContainer.AddModule(string name)
  32. {
  33. moduleManager.LoadModule(name);
  34. }
  35. void ICommonContainer.AddNavigation(ContainerInfo containerInfo)
  36. {
  37. if (containerInfo.IsHidden)
  38. return;
  39. containerManager.Containers ??= [];
  40. if (!containerManager.Containers.ContainsKey(containerInfo.Index))
  41. {
  42. containerManager.Containers[containerInfo.Index] = containerInfo;
  43. goto Rest;
  44. }
  45. Dictionary<int, ContainerInfo> cache = [];
  46. foreach (KeyValuePair<int, ContainerInfo> container in containerManager.Containers)
  47. {
  48. }
  49. Rest:
  50. if (containerInfo.IsDefault)
  51. regionManager.RequestNavigate(MainReginName, containerInfo.Name);
  52. }
  53. }