App.xaml.cs 1.6 KB

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