BackgroundTemplateListFileContentViewModel.cs 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. using PDF_Office.EventAggregators;
  2. using PDF_Office.Properties;
  3. using PDFSettings;
  4. using Prism.Commands;
  5. using Prism.Events;
  6. using Prism.Mvvm;
  7. using Prism.Regions;
  8. using System;
  9. using System.Collections.Generic;
  10. using System.Collections.ObjectModel;
  11. using System.Linq;
  12. using System.Text;
  13. using System.Threading.Tasks;
  14. using System.Windows;
  15. using System.Windows.Controls;
  16. namespace PDF_Office.ViewModels.EditTools.Background
  17. {
  18. public class BackgroundTemplateListFileContentViewModel : BindableBase,INavigationAware
  19. {
  20. private readonly IEventAggregator eventAggregator;
  21. public ObservableCollection<BackgroundItem> backgroundModFileCollection = new ObservableCollection<BackgroundItem>();
  22. public ObservableCollection<BackgroundItem> BackgroundModFileCollection
  23. {
  24. get { return backgroundModFileCollection; }
  25. set
  26. {
  27. backgroundModFileCollection = value;
  28. RaisePropertyChanged();
  29. }
  30. }
  31. private Visibility _createTemplateVisible;
  32. public Visibility CreateTemplateVisible
  33. {
  34. get { return _createTemplateVisible; }
  35. set { SetProperty(ref _createTemplateVisible, value); }
  36. }
  37. public DelegateCommand AddTemplateCommand { get; set; }
  38. public DelegateCommand<object> DeleteTemplateItemCommand { get; set; }
  39. public DelegateCommand DeleteAllTemplateItemCommand{ get; set; }
  40. public DelegateCommand<object> SelectTemplateItemCommand { get; set; }
  41. BackgroundTemplateListFileContentViewModel(IEventAggregator eventAggregator)
  42. {
  43. this.eventAggregator = eventAggregator;
  44. AddTemplateCommand = new DelegateCommand(AddTemplate);
  45. DeleteTemplateItemCommand = new DelegateCommand<object>(DeleteTemplateItem);
  46. DeleteAllTemplateItemCommand = new DelegateCommand(DeleteAllTemplateItem);
  47. SelectTemplateItemCommand = new DelegateCommand<object>(SelectTemplateItem);
  48. }
  49. private void CheckTemplateListIsEmpty(List<BackgroundItem> backgroundTemplateList)
  50. {
  51. if (backgroundTemplateList.Count() == 0)
  52. {
  53. CreateTemplateVisible = Visibility.Visible;
  54. }
  55. else
  56. {
  57. CreateTemplateVisible = Visibility.Collapsed;
  58. }
  59. }
  60. private void GetBackgroundSource()
  61. {
  62. List<BackgroundItem> backgroundModFileTemplateList = new List<BackgroundItem>();
  63. for (int temp = 0; temp < Settings.Default.BackgroundTemplateList.Count; temp++)
  64. {
  65. if (Settings.Default.BackgroundTemplateList[temp].type == ComPDFKit.PDFDocument.C_Background_Type.BG_TYPE_IMAGE)
  66. {
  67. backgroundModFileTemplateList.Add(Settings.Default.BackgroundTemplateList[temp]);
  68. }
  69. }
  70. BackgroundModFileCollection = new ObservableCollection<BackgroundItem>(backgroundModFileTemplateList);
  71. CheckTemplateListIsEmpty(backgroundModFileTemplateList);
  72. }
  73. private void InitBackgroundTemplateList()
  74. {
  75. if (Settings.Default.BackgroundTemplateList == null)
  76. {
  77. Settings.Default.BackgroundTemplateList = new BackgroundTemplateList();
  78. }
  79. GetBackgroundSource();
  80. }
  81. public void AddTemplate()
  82. {
  83. this.eventAggregator.GetEvent<EnterTemplateListOrCreateEvent>().Publish(EnumTemplateListOrCreate.StatusCreate);
  84. }
  85. public void DeleteTemplateItem(object e)
  86. {
  87. var control = e as Control;
  88. if (control == null)
  89. {
  90. return;
  91. }
  92. var template = control.DataContext as BackgroundItem;
  93. if (template == null)
  94. {
  95. return;
  96. }
  97. Settings.Default.AppProperties.NeedToDeletePath.Add(template.previeImagePath);
  98. Settings.Default.AppProperties.NeedToDeletePath.Add(template.imagepath);
  99. Settings.Default.BackgroundTemplateList.Remove(template);
  100. Settings.Default.Save();
  101. BackgroundModFileCollection.Remove(template);
  102. GetBackgroundSource();
  103. }
  104. public void DeleteAllTemplateItem()
  105. {
  106. while (Settings.Default.BackgroundTemplateList.Count != 0)
  107. {
  108. int temp = 0;
  109. var template = Settings.Default.BackgroundTemplateList[temp];
  110. Settings.Default.AppProperties.NeedToDeletePath.Add(template.previeImagePath);
  111. Settings.Default.AppProperties.NeedToDeletePath.Add(template.imagepath);
  112. Settings.Default.BackgroundTemplateList.Remove(template);
  113. Settings.Default.Save();
  114. BackgroundModFileCollection.Remove(template);
  115. }
  116. GetBackgroundSource();
  117. }
  118. public void SelectTemplateItem(object e)
  119. {
  120. var listBox = e as ListBox;
  121. var xxx = listBox.SelectedItem as BackgroundItem;
  122. }
  123. public bool IsNavigationTarget(NavigationContext navigationContext)
  124. {
  125. return true;
  126. }
  127. public void OnNavigatedFrom(NavigationContext navigationContext)
  128. {
  129. }
  130. public void OnNavigatedTo(NavigationContext navigationContext)
  131. {
  132. InitBackgroundTemplateList();
  133. }
  134. }
  135. }