BackgroundCreateBaseContentViewModel.cs 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. using ComPDFKitViewer.PdfViewer;
  2. using PDF_Office.EventAggregators;
  3. using PDF_Office.Model;
  4. using PDF_Office.Views.EditTools.Background;
  5. using Prism.Commands;
  6. using Prism.Events;
  7. using Prism.Mvvm;
  8. using Prism.Regions;
  9. using System;
  10. using System.Collections.Generic;
  11. using System.Linq;
  12. using System.Text;
  13. using System.Threading.Tasks;
  14. using System.Windows.Controls;
  15. namespace PDF_Office.ViewModels.EditTools.Background
  16. {
  17. public class BackgroundCreateBaseContentViewModel : BindableBase, INavigationAware
  18. {
  19. IEventAggregator eventAggregator;
  20. IRegionManager backgroundCreateRegion;
  21. private CPDFViewer PDFViewer;
  22. private string backgroundCreateRegionName;
  23. public string BackgroundCreateRegionName
  24. {
  25. get => backgroundCreateRegionName;
  26. set => SetProperty(ref backgroundCreateRegionName, value);
  27. }
  28. private string _currentCreateModName;
  29. public string CurrentCreateModName
  30. {
  31. get => _currentCreateModName;
  32. set => _currentCreateModName = value;
  33. }
  34. private System.Windows.Visibility backgroundCreateVisible;
  35. public System.Windows.Visibility BackgroundCreateVisible
  36. {
  37. get => backgroundCreateVisible;
  38. set => SetProperty(ref backgroundCreateVisible, value);
  39. }
  40. private bool isFirstEnter = true;
  41. public bool IsFirstEnter
  42. {
  43. get => isFirstEnter;
  44. set => isFirstEnter = value;
  45. }
  46. public EnumColorOrFile CurrentTemplateListMod;
  47. public DelegateCommand<object> ChangeCreateModCommand { get; set; }
  48. public DelegateCommand EnterTemplateListCommand { get; set; }
  49. public DelegateCommand SaveToTemplateListCommand { get; set; }
  50. public BackgroundCreateBaseContentViewModel(IRegionManager regionManager, IEventAggregator eventAggregator)
  51. {
  52. this.eventAggregator = eventAggregator;
  53. this.backgroundCreateRegion = regionManager;
  54. BackgroundCreateRegionName = Guid.NewGuid().ToString();
  55. ChangeCreateModCommand = new DelegateCommand<object>(ChangeCreateMod);
  56. EnterTemplateListCommand = new DelegateCommand(EnterTemplateList);
  57. SaveToTemplateListCommand = new DelegateCommand(SaveToTemplateList);
  58. }
  59. public void SaveToTemplateList()
  60. {
  61. if (CurrentCreateModName == "BackgroundCreateColorContent")
  62. {
  63. this.eventAggregator.GetEvent<SaveBackgroundTemplateEvent>().Publish(EnumColorOrFile.StatusColor);
  64. }
  65. if (CurrentCreateModName == "BackgroundCreateFileContent")
  66. {
  67. this.eventAggregator.GetEvent<SaveBackgroundTemplateEvent>().Publish(EnumColorOrFile.StatusFile);
  68. }
  69. }
  70. public void EnterTemplateList()
  71. {
  72. this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(EnumTemplateListOrCreate.StatusTemplate);
  73. }
  74. public void EnterSelectedCreateMod(string currentCreateName)
  75. {
  76. NavigationParameters param = new NavigationParameters();
  77. param.Add(ParameterNames.PDFViewer, PDFViewer);
  78. backgroundCreateRegion.RequestNavigate(BackgroundCreateRegionName, currentCreateName, param);
  79. backgroundCreateVisible = System.Windows.Visibility.Visible;
  80. }
  81. public void ChangeCreateMod(object e)
  82. {
  83. var args = e as Button;
  84. if (args != null)
  85. {
  86. CurrentCreateModName = args.Name;
  87. EnterSelectedCreateMod(CurrentCreateModName);
  88. eventAggregator.GetEvent<SetCurrentCreateModEvent>().Publish(CurrentCreateModName);
  89. }
  90. }
  91. public bool IsNavigationTarget(NavigationContext navigationContext)
  92. {
  93. return true;
  94. }
  95. public void OnNavigatedFrom(NavigationContext navigationContext)
  96. {
  97. }
  98. public void OnNavigatedTo(NavigationContext navigationContext)
  99. {
  100. navigationContext.Parameters.TryGetValue<CPDFViewer>(ParameterNames.PDFViewer, out PDFViewer);
  101. navigationContext.Parameters.TryGetValue<EnumColorOrFile>("CurrentTemplateListModName", out CurrentTemplateListMod);
  102. if (CurrentTemplateListMod == EnumColorOrFile.StatusColor)
  103. {
  104. CurrentCreateModName = "BackgroundCreateColorContent";
  105. }
  106. else
  107. {
  108. CurrentCreateModName = "BackgroundCreateFileContent";
  109. }
  110. EnterSelectedCreateMod(CurrentCreateModName);
  111. eventAggregator.GetEvent<SetCurrentCreateModEvent>().Publish(CurrentCreateModName);
  112. }
  113. }
  114. }