App.xaml.cs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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. }
  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. private const string _MainReginName = "MainRegion";
  31. string ICommonContainer.MainReginName => _MainReginName;
  32. void ICommonContainer.AddModule(string name)
  33. {
  34. moduleManager.LoadModule(name);
  35. }
  36. void ICommonContainer.AddNavigation(ContainerInfo containerInfo)
  37. {
  38. if (containerInfo.IsHidden)
  39. return;
  40. App.Current.Dispatcher.Invoke(() =>
  41. {
  42. containerManager.Containers.Add(containerInfo.Index, containerInfo);
  43. var t = containerManager.Containers.OrderBy(t => t.Key);
  44. //containerManager.Containers.Clear();
  45. //foreach (var item in t)
  46. //{
  47. // containerManager.Containers.Add(item.Key, item.Value);
  48. //}
  49. });
  50. }
  51. void ICommonContainer.RequestNavigation(string name)
  52. {
  53. regionManager.RequestNavigate(_MainReginName, name);
  54. }
  55. }