BookmarkContentViewModel.cs 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. using ComPDFKit.PDFDocument;
  2. using ComPDFKitViewer.PdfViewer;
  3. using PDF_Office.Model;
  4. using Prism.Mvvm;
  5. using Prism.Regions;
  6. using Prism.Services.Dialogs;
  7. using System.Collections.ObjectModel;
  8. using System.Linq;
  9. using System.Windows;
  10. namespace PDF_Office.ViewModels.BOTA
  11. {
  12. public class BookmarkContentViewModel : BindableBase, INavigationAware
  13. {
  14. #region 属性
  15. private IRegionManager region;
  16. private IDialogService dialogs;
  17. public CPDFViewer PDFViewer;
  18. public ObservableCollection<CPDFBookmark> Bookmarklist { get; set; }
  19. private Visibility isEmptyPanelVisibility = Visibility.Collapsed;
  20. public Visibility IsEmptyPanelVisibility
  21. {
  22. get { return isEmptyPanelVisibility; }
  23. set { isEmptyPanelVisibility = value; }
  24. }
  25. #endregion 属性
  26. public BookmarkContentViewModel(IRegionManager regionManager, IDialogService dialogService)
  27. {
  28. region = regionManager;
  29. dialogs = dialogService;
  30. }
  31. public void OnNavigatedTo(NavigationContext navigationContext)
  32. {
  33. navigationContext.Parameters.TryGetValue<CPDFViewer>(ParameterNames.PDFViewer, out PDFViewer);
  34. if (PDFViewer == null)
  35. {
  36. return;
  37. }
  38. Bookmarklist = new ObservableCollection<CPDFBookmark>(PDFViewer.Document.GetBookmarkList().OrderBy(d => d.Title));
  39. if (Bookmarklist.Count < 1)
  40. {
  41. IsEmptyPanelVisibility = Visibility.Visible;
  42. return;
  43. }
  44. else
  45. {
  46. isEmptyPanelVisibility = Visibility.Collapsed;
  47. }
  48. }
  49. public bool IsNavigationTarget(NavigationContext navigationContext)
  50. {
  51. return true;
  52. }
  53. public void OnNavigatedFrom(NavigationContext navigationContext)
  54. {
  55. }
  56. }
  57. }