using ComPDFKitViewer.PdfViewer; using PDF_Master.CustomControl; using PDF_Master.Helper; using PDF_Master.Model; using PDF_Master.Model.HomePageToolsDialogs; using Prism.Commands; using Prism.Mvvm; using Prism.Services.Dialogs; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace PDF_Master.ViewModels.Dialog.PageEditDialogs { public class SplitDialogViewModel : BindableBase, IDialogAware { public string Title => ""; private CPDFViewer pdfViewer; private double pageCount; //页面总数 public double PageCount { get { return pageCount; } set { SetProperty(ref pageCount, value); } } private string customPageText; /// /// 自定义的输入内容 /// public string CustomPageText { get { return customPageText; } set { SetProperty(ref customPageText, value); } } private HomePageSplitDialogModel model; public HomePageSplitDialogModel Model { get { return model; } set { SetProperty(ref model, value); } } public event Action RequestClose; public DelegateCommand CancelCommand { get; set; } public DelegateCommand SplitCommnad { get; set; } public SplitDialogViewModel() { CancelCommand = new DelegateCommand(cancel); SplitCommnad = new DelegateCommand(split); Model = new HomePageSplitDialogModel(); } private void cancel() { RequestClose.Invoke(new DialogResult(ButtonResult.Cancel)); } private void split() { List pages = new List(); Model.PageRange = customPageText; DialogParameters valuePairs = new DialogParameters(); valuePairs.Add(ParameterNames.DataModel,Model); RequestClose.Invoke(new DialogResult(ButtonResult.OK, valuePairs)); } #region public bool CanCloseDialog() { return true; } public void OnDialogClosed() { } public void OnDialogOpened(IDialogParameters parameters) { parameters.TryGetValue(ParameterNames.PDFViewer,out pdfViewer); if(pdfViewer!=null) { PageCount = pdfViewer.Document.PageCount; Model.SourceFileName = System.IO.Path.GetFileName(pdfViewer.Document.FileName); } } #endregion } }