HomePageConverterDialogViewModel.cs 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642
  1. using ComPDFKit.PDFDocument;
  2. using ComPDFKit_Conversion.Converter;
  3. using Microsoft.Office.Interop.Excel;
  4. using Microsoft.Office.Interop.Word;
  5. using PDF_Office.CustomControl;
  6. using PDF_Office.Helper;
  7. using PDF_Office.Model;
  8. using PDF_Office.Model.Dialog.ConverterDialogs;
  9. using PDF_Office.Model.Dialog.HomePageToolsDialogs.HomePageBatchProcessing;
  10. using PDF_Office.Model.Dialog.HomePageToolsDialogs.HomePageBatchProcessing.HomePageConverter;
  11. using Prism.Commands;
  12. using Prism.Mvvm;
  13. using Prism.Regions;
  14. using Prism.Services.Dialogs;
  15. using System;
  16. using System.Collections.Generic;
  17. using System.Data;
  18. using System.Diagnostics;
  19. using System.IO;
  20. using System.Linq;
  21. using System.Reflection;
  22. using System.Windows;
  23. using System.Windows.Forms;
  24. using DataTable = System.Data.DataTable;
  25. namespace PDF_Office.ViewModels.Dialog.HomePageToolsDialogs.HomePageBatchProcessing.HomePageConverter
  26. {
  27. public class HomePageConverterDialogViewModel : BindableBase, INavigationAware
  28. {
  29. #region 参数和属性
  30. private List<string> fileNames;
  31. public HomePageConverterCSVModel ConverterCSVModel = new HomePageConverterCSVModel();
  32. public HomePageConverterExcelModel ConverterExcelModel = new HomePageConverterExcelModel();
  33. public HomePageConverterHTMLModel ConverterHTMLModel = new HomePageConverterHTMLModel();
  34. public HomePageConverterImgModel ConverterImgModel = new HomePageConverterImgModel();
  35. public HomePageConverterPPTModel ConverterPPTModel = new HomePageConverterPPTModel();
  36. public HomePageConverterRTFModel ConverterRTFModel = new HomePageConverterRTFModel();
  37. public HomePageConverterTextModel ConverterTextModel = new HomePageConverterTextModel();
  38. public HomePageConverterWordModel ConverterWordModel = new HomePageConverterWordModel();
  39. private CPDFDocument tempDocument;
  40. public string PageNumber = "";
  41. public IRegionManager ConverterRegion;
  42. public IDialogService dialogs;
  43. public List<int> fileNamesView = new List<int>();
  44. private int fileNamesIndex = 0;
  45. private int FileNameNumber = 0;
  46. public List<string> ConverterTypeFamily { set; get; } = new List<string>();
  47. private void SetImageTypeOrigin()
  48. {
  49. this.ConverterTypeFamily.Add("Word");
  50. this.ConverterTypeFamily.Add("Excel");
  51. this.ConverterTypeFamily.Add("PPT");
  52. this.ConverterTypeFamily.Add("RTF");
  53. this.ConverterTypeFamily.Add("HTML");
  54. this.ConverterTypeFamily.Add("Text");
  55. this.ConverterTypeFamily.Add("CSV");
  56. this.ConverterTypeFamily.Add("Img");
  57. }
  58. private string converterGridIsEnabled = "True";
  59. public string ConverterGridIsEnabled
  60. {
  61. get
  62. {
  63. return converterGridIsEnabled;
  64. }
  65. set
  66. {
  67. SetProperty(ref converterGridIsEnabled, value);
  68. }
  69. }
  70. private string setConverterGridIsEnabled = "True";
  71. public string SetConverterGridIsEnabled
  72. {
  73. get
  74. {
  75. return setConverterGridIsEnabled;
  76. }
  77. set
  78. {
  79. SetProperty(ref setConverterGridIsEnabled, value);
  80. }
  81. }
  82. private DataTable pdfDataTable = new DataTable();
  83. public DataTable PDFDataTable
  84. {
  85. get { return pdfDataTable; }
  86. set
  87. {
  88. SetProperty(ref pdfDataTable, value);
  89. }
  90. }
  91. private DataTable pdfCurrentDataTable = new DataTable();
  92. public DataTable PDFCurrentDataTable
  93. {
  94. get { return pdfCurrentDataTable; }
  95. set
  96. {
  97. SetProperty(ref pdfCurrentDataTable, value);
  98. }
  99. }
  100. private string removeIsEnable = "False";
  101. public string RemoveIsEnable
  102. {
  103. get { return removeIsEnable; }
  104. set
  105. {
  106. SetProperty(ref removeIsEnable, value);
  107. }
  108. }
  109. private string selectFileName = "False";
  110. public string SelectFileName
  111. {
  112. get { return selectFileName; }
  113. set
  114. {
  115. SetProperty(ref selectFileName, value);
  116. }
  117. }
  118. private int converterTypeIndex = 0;
  119. public int ConverterTypeIndex
  120. {
  121. get { return converterTypeIndex; }
  122. set
  123. {
  124. SetProperty(ref converterTypeIndex, value);
  125. }
  126. }
  127. private string converterRegionName;
  128. public string ConverterRegionName
  129. {
  130. get
  131. {
  132. return converterRegionName;
  133. }
  134. set
  135. {
  136. SetProperty(ref converterRegionName, value);
  137. }
  138. }
  139. private Visibility converterVisible = Visibility.Collapsed;
  140. public Visibility ConverterVisible
  141. {
  142. get { return converterVisible; }
  143. set { SetProperty(ref converterVisible, value); }
  144. }
  145. private Visibility addFileVisibility = Visibility.Hidden;
  146. public Visibility AddFileVisibility
  147. {
  148. get { return addFileVisibility; }
  149. set
  150. {
  151. SetProperty(ref addFileVisibility, value);
  152. RaisePropertyChanged();
  153. }
  154. }
  155. #endregion
  156. #region 委托声明
  157. public DelegateCommand ADDPDFCommand { get; set; }
  158. public DelegateCommand RemovePDFFileCommand { get; set; }
  159. public DelegateCommand ConvertCommand { get; set; }
  160. public DelegateCommand ADDPDFFilesCommand { get; set; }
  161. #endregion
  162. public HomePageConverterDialogViewModel(IRegionManager converterRegion, IDialogService dialogs)
  163. {
  164. SetImageTypeOrigin();
  165. PDFCurrentDataTable.Columns.Add("FilePageRangeText");
  166. PDFCurrentDataTable.Columns.Add("FilePageRangeSelectIndex");
  167. PDFCurrentDataTable.Columns.Add("IsEvenPageIsEnabled");
  168. PDFCurrentDataTable.Columns.Add("FileState");
  169. PDFDataTable.Columns.Add("FileName");
  170. PDFDataTable.Columns.Add("FilePageRangeText");
  171. PDFDataTable.Columns.Add("FilePageRangeSelectIndex");
  172. PDFDataTable.Columns.Add("IsEvenPageIsEnabled");
  173. PDFDataTable.Columns.Add("MaxPageRange");
  174. PDFDataTable.Columns.Add("FileSize");
  175. PDFDataTable.Columns.Add("FileState");
  176. ADDPDFCommand = new DelegateCommand(addpicture);
  177. ADDPDFFilesCommand = new DelegateCommand(addpicturefiles);
  178. RemovePDFFileCommand = new DelegateCommand(removepdffile);
  179. ConvertCommand = new DelegateCommand(convert);
  180. ConverterRegion = converterRegion;
  181. this.dialogs = dialogs;
  182. ConverterRegionName=Guid.NewGuid().ToString();
  183. }
  184. #region 逻辑函数
  185. private void SetProgress(int pageIndex)
  186. {
  187. PDFDataTable.Rows[fileNamesIndex]["FileState"] = "已经转换" + pageIndex.ToString() + "页";
  188. pageIndex.ToString();
  189. }
  190. private async void convert()
  191. {
  192. updateListview("待确定");
  193. bool result = false;
  194. OnProgress GetProgress = null;
  195. GetProgress += SetProgress;
  196. fileNamesIndex = 0;
  197. ConverterGridIsEnabled = "False";
  198. foreach (var filename in fileNames)
  199. {
  200. FileInfo fileinfo = new FileInfo(filename);
  201. string OutputPath = fileinfo.DirectoryName;
  202. char[] enumerationSeparator = new char[] { ',' };
  203. char[] rangeSeparator = new char[] { '-' };
  204. List<int> PageIndexLists=new List<int>();
  205. CPDFDocument document = CPDFDocument.InitWithFilePath(filename);
  206. if (document == null )
  207. {
  208. PDFDataTable.Rows[fileNamesIndex]["FileState"] = "文件出错";
  209. PDFCurrentDataTable.Rows[fileNamesIndex]["FileState"] = "文件出错";
  210. fileNamesIndex++;
  211. continue;
  212. }
  213. string DocPassword = "";
  214. if (document.IsLocked)
  215. {
  216. DialogParameters value = new DialogParameters();
  217. value.Add(ParameterNames.PDFDocument, document);
  218. dialogs.ShowDialog(DialogNames.VerifyPassWordDialog, value, e =>
  219. {
  220. if (e.Result == ButtonResult.OK)
  221. {
  222. if (e.Parameters.ContainsKey(ParameterNames.PassWord) && e.Parameters.GetValue<string>(ParameterNames.PassWord) != null)
  223. {
  224. DocPassword = e.Parameters.GetValue<string>(ParameterNames.PassWord).ToString();
  225. document.UnlockWithPassword(DocPassword);
  226. }
  227. }
  228. });
  229. if (document.IsLocked)
  230. {
  231. //未成功解密文档时,释放Document对象,返回
  232. PDFDataTable.Rows[fileNamesIndex]["FileState"] = "文件出错";
  233. PDFCurrentDataTable.Rows[fileNamesIndex]["FileState"] = "文件出错";
  234. fileNamesIndex++;
  235. continue;
  236. }
  237. }
  238. if (!CommonHelper.GetPagesInRange(ref PageIndexLists, "1-" + document.PageCount.ToString(),document.PageCount, enumerationSeparator, rangeSeparator))
  239. { //TODO
  240. Trace.WriteLine("输入不对");
  241. MessageBoxEx.Show("输入不对");
  242. return;
  243. }
  244. switch (ConverterTypeIndex)
  245. {
  246. case 0:
  247. if (ConverterWordModel != null)
  248. {
  249. PageNumber = ConverterWordModel.PageIndexLists.Count().ToString();
  250. result = await ConverterHelper.WordConvert(filename, OutputPath, GetProgress, PageIndexLists, DocPassword);
  251. }
  252. break;
  253. case 1:
  254. if (ConverterExcelModel != null)
  255. {
  256. PageNumber = ConverterExcelModel.PageIndexLists.Count().ToString();
  257. result = await ConverterHelper.ExcelConvert(filename, OutputPath, GetProgress, PageIndexLists, DocPassword, ConverterExcelModel.excelOption);
  258. }
  259. break;
  260. case 2:
  261. if (ConverterPPTModel != null)
  262. {
  263. PageNumber = ConverterPPTModel.PageIndexLists.Count().ToString();
  264. result = await ConverterHelper.PPTConvert(filename, OutputPath, GetProgress, PageIndexLists, DocPassword);
  265. }
  266. break;
  267. case 3:
  268. if (ConverterRTFModel != null)
  269. {
  270. PageNumber = ConverterRTFModel.PageIndexLists.Count().ToString();
  271. result = await ConverterHelper.RTFConvert(filename, OutputPath, GetProgress, PageIndexLists, DocPassword);
  272. }
  273. break;
  274. case 4:
  275. if (ConverterHTMLModel != null)
  276. {
  277. PageNumber = ConverterHTMLModel.PageIndexLists.Count().ToString();
  278. result = await ConverterHelper.HTMLConvert(filename, OutputPath, GetProgress, PageIndexLists, DocPassword, ConverterHTMLModel.HTMLOptions());
  279. }
  280. break;
  281. case 5:
  282. if (ConverterTextModel != null)
  283. {
  284. PageNumber = ConverterTextModel.PageIndexLists.Count().ToString();
  285. result = await ConverterHelper.TxtConvert(filename, OutputPath, GetProgress, PageIndexLists, DocPassword);
  286. }
  287. break;
  288. case 6:
  289. if (ConverterCSVModel != null)
  290. {
  291. PageNumber = ConverterCSVModel.PageIndexLists.Count().ToString();
  292. result = await ConverterHelper.CSVConvert(filename, OutputPath, GetProgress, PageIndexLists, DocPassword);
  293. }
  294. break;
  295. case 7:
  296. if (ConverterImgModel != null)
  297. {
  298. PageNumber = ConverterImgModel.PageIndexLists.Count().ToString();
  299. result = await ConverterHelper.ImgConvert(filename, OutputPath, GetProgress, PageIndexLists, DocPassword, ConverterImgModel.Type, ConverterImgModel.imageType);
  300. }
  301. break;
  302. default:
  303. break;
  304. }
  305. document.Release();
  306. PDFDataTable.Rows[fileNamesIndex]["FileState"] = "完成";
  307. PDFCurrentDataTable.Rows[fileNamesIndex]["FileState"] = "完成";
  308. fileNamesIndex++;
  309. }
  310. ConverterGridIsEnabled = "True";
  311. }
  312. #endregion
  313. #region 批量处理逻辑函数
  314. /// <summary>
  315. /// 添加PDF文件
  316. /// </summary>
  317. private void addpicture()
  318. {
  319. FileNameNumber = fileNames.Count;
  320. System.Windows.Forms.OpenFileDialog dlg = new System.Windows.Forms.OpenFileDialog();
  321. dlg.Multiselect = true;
  322. dlg.Filter = "PDF|*.pdf;*.PDF;";
  323. if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  324. {
  325. fileNames.AddRange(dlg.FileNames.ToList());
  326. RemoveExcess(ref fileNames);
  327. SetConverterGridIsEnabled = "True";
  328. AddFileVisibility = Visibility.Collapsed;
  329. updateListview("待确定");
  330. }
  331. }
  332. public void addPDFFiles(string filename)
  333. {
  334. FileNameNumber = fileNames.Count;
  335. fileNames.Add(filename);
  336. RemoveExcess(ref fileNames);
  337. SetConverterGridIsEnabled = "True";
  338. AddFileVisibility = Visibility.Collapsed;
  339. updateListview("待确定");
  340. }
  341. /// <summary>
  342. /// 删除重复的文件
  343. /// </summary>
  344. public void RemoveExcess(ref List<string> Filenames)
  345. {
  346. List<string> filenames = new List<string>();
  347. foreach (var fileName in Filenames)
  348. {
  349. if (!filenames.Contains(fileName))
  350. {
  351. filenames.Add(fileName);
  352. }
  353. }
  354. Filenames.Clear();
  355. Filenames = filenames;
  356. }
  357. /// <summary>
  358. /// 添加PDF文件夹
  359. /// </summary>
  360. private void addpicturefiles()
  361. {
  362. FileNameNumber = fileNames.Count;
  363. FolderBrowserDialog dialog = new FolderBrowserDialog();
  364. dialog.Description = "请选择文件路径";
  365. if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
  366. {
  367. string foldPath = dialog.SelectedPath;
  368. var apps = System.IO.Directory.GetFiles(foldPath);
  369. foreach (string app in apps)
  370. {
  371. var fi = new FileInfo(app);
  372. if (fi.Extension == ".pdf" || fi.Extension == ".PDF")
  373. {
  374. fileNames.Add(app);
  375. }
  376. }
  377. RemoveExcess(ref fileNames);
  378. updateListview("待确定");
  379. SetConverterGridIsEnabled = "True";
  380. AddFileVisibility = Visibility.Collapsed;
  381. }
  382. }
  383. /// <summary>
  384. /// 更新listview显示
  385. /// state 状态显示字符串
  386. /// </summary>
  387. public void updateListview(string state)
  388. {
  389. updateCurrentListview();
  390. DataTable pdfdatatable = new DataTable();
  391. pdfdatatable.Columns.Add("FileName");
  392. pdfdatatable.Columns.Add("FilePageRangeText");
  393. pdfdatatable.Columns.Add("FilePageRangeSelectIndex");
  394. pdfdatatable.Columns.Add("IsEvenPageIsEnabled");
  395. pdfdatatable.Columns.Add("MaxPageRange");
  396. pdfdatatable.Columns.Add("FileSize");
  397. pdfdatatable.Columns.Add("FileState");
  398. int datatableindex = 0;
  399. List<int> PageIndexLists = new List<int>();
  400. foreach (var fileName in fileNames)
  401. {
  402. string file_all = fileName;
  403. FileInfo f = new FileInfo(file_all);
  404. string file_size = (((float)f.Length) / 1024).ToString() + " K";
  405. if (!isEvenPage(fileName) && PDFCurrentDataTable.Rows[datatableindex]["FilePageRangeSelectIndex"].ToString() == "2")
  406. {
  407. PDFCurrentDataTable.Rows[datatableindex]["FilePageRangeSelectIndex"] = "0";
  408. }
  409. int pagecount = CPDFDocument.InitWithFilePath(fileName).PageCount;
  410. if (PDFCurrentDataTable.Rows[datatableindex]["FilePageRangeSelectIndex"].ToString() == "3" && !CommonHelper.GetPagesInRange(ref PageIndexLists, PDFCurrentDataTable.Rows[datatableindex]["FilePageRangeText"].ToString(), pagecount, new char[] { ',' }, new char[] { '-' }, true))
  411. {
  412. PDFCurrentDataTable.Rows[datatableindex]["FilePageRangeSelectIndex"] = "0";
  413. }
  414. pdfdatatable.Rows.Add(f.Name, PDFCurrentDataTable.Rows[datatableindex]["FilePageRangeText"], PDFCurrentDataTable.Rows[datatableindex]["FilePageRangeSelectIndex"], isEvenPage(fileName), pagecount, file_size, PDFCurrentDataTable.Rows[datatableindex]["FileState"]);
  415. datatableindex++;
  416. }
  417. PDFDataTable = pdfdatatable;
  418. HomePageBatchProcessingDialogModel.FilePaths = fileNames;
  419. }
  420. /// <summary>
  421. /// 更新Currentlistview显示
  422. /// pagerangetext 自定义页面范围字符串 pagerangeselectindex combobox下拉索引(0全部页面 1奇数页 2偶数页 3自定义页面)isevenpageisenabled 偶数页状态 state 状态显示字符串
  423. /// </summary>
  424. public void updateCurrentListview(string pagerangetext = "1", string pagerangeselectindex = "0", bool isevenpageisenabled = true, string state = "待完成")
  425. {
  426. if (fileNames.Count >= FileNameNumber)
  427. {
  428. for (int i = 0; fileNames.Count - FileNameNumber > i; i++)
  429. {
  430. PDFCurrentDataTable.Rows.Add(pagerangetext, pagerangeselectindex, isevenpageisenabled, state);
  431. }
  432. }
  433. else
  434. {
  435. Reverseorder(ref fileNamesView);
  436. foreach (int filenamesview in fileNamesView)
  437. {
  438. PDFCurrentDataTable.Rows.RemoveAt(filenamesview);
  439. }
  440. }
  441. }
  442. /// <summary>
  443. /// 更新Currentlistview显示
  444. /// pagerangetext 自定义页面范围字符串 pagerangeselectindex combobox下拉索引(0全部页面 1奇数页 2偶数页 3自定义页面)
  445. /// </summary>
  446. public void updateFilesPageRange(string pagerangetext = "1", string pagerangeselectindex = "0")
  447. {
  448. for (int i = 0; fileNames.Count > i; i++)
  449. {
  450. PDFDataTable.Rows[i]["FilePageRangeText"] = pagerangetext;
  451. PDFDataTable.Rows[i]["FilePageRangeSelectIndex"] = pagerangeselectindex;
  452. PDFCurrentDataTable.Rows[i]["FilePageRangeText"] = pagerangetext;
  453. PDFCurrentDataTable.Rows[i]["FilePageRangeSelectIndex"] = pagerangeselectindex;
  454. }
  455. }
  456. /// <summary>
  457. /// 获取文件列表单个文件对应的页码范围
  458. /// document 文档对象 pagerangetext 自定义页面范围字符串 pagerangeselectindex combobox下拉索引(0全部页面 1奇数页 2偶数页 3自定义页面)
  459. /// </summary>
  460. public string getFilePageRange(CPDFDocument document, string pagerangetext = "1", string pagerangeselectindex = "0")
  461. {
  462. string filePageRange = "1";
  463. EditToolsHelper.GetPageRange(int.Parse(pagerangeselectindex), document, ref filePageRange, pagerangetext);
  464. return filePageRange;
  465. }
  466. /// <summary>
  467. /// 判断是否关闭偶数页
  468. /// document 文档对象 )
  469. /// </summary>
  470. public bool isEvenPage(string filename)
  471. {
  472. CPDFDocument document = CPDFDocument.InitWithFilePath(filename);
  473. bool isevenpage = false;
  474. if (document.PageCount > 1)
  475. {
  476. isevenpage = true;
  477. }
  478. document.Release();
  479. return isevenpage;
  480. }
  481. /// <summary>
  482. /// 逆序int类型集合
  483. /// </summary>
  484. public void Reverseorder(ref List<int> Numbers)
  485. {
  486. Numbers = Numbers.OrderBy(a => a).ToList();
  487. Numbers.Reverse();
  488. }
  489. /// <summary>
  490. /// 打开文件PDF
  491. /// </summary>
  492. public void openfiledialog()
  493. {
  494. foreach (int filenamesview in fileNamesView)
  495. {
  496. System.Diagnostics.Process.Start(fileNames[filenamesview]);
  497. }
  498. }
  499. /// <summary>
  500. /// 删除文件PDF
  501. /// </summary>
  502. public void removepdffile()
  503. {
  504. FileNameNumber = fileNames.Count;
  505. Reverseorder(ref fileNamesView);
  506. foreach (int filenamesview in fileNamesView)
  507. {
  508. //Trace.WriteLine(filenamesview);
  509. fileNames.Remove(fileNames[filenamesview]);
  510. }
  511. if (fileNames.Count < 1)
  512. {
  513. SetConverterGridIsEnabled = "False";
  514. AddFileVisibility = Visibility.Visible;
  515. }
  516. updateListview("待确定");
  517. }
  518. public void removepdffile(int index)
  519. {
  520. PDFCurrentDataTable.Rows.RemoveAt(index);
  521. fileNames.Remove(fileNames[index]);
  522. if (fileNames.Count < 1)
  523. {
  524. SetConverterGridIsEnabled = "False";
  525. AddFileVisibility = Visibility.Visible;
  526. }
  527. updateListview("待确定");
  528. }
  529. public void PDFFileCount()
  530. {
  531. if (fileNames.Count == 0)
  532. {
  533. SetConverterGridIsEnabled = "False";
  534. AddFileVisibility = Visibility.Visible;
  535. }
  536. else
  537. {
  538. SetConverterGridIsEnabled = "True";
  539. AddFileVisibility = Visibility.Collapsed;
  540. }
  541. }
  542. public void ChangeConverter(int index)
  543. {
  544. ConverterTypeIndex=index;
  545. NavigationParameters param = new NavigationParameters();
  546. param.Add(ParameterNames.ViewContentViewModel, this);
  547. if (index == 0 || index == 1 || index == 6 || index == 7)
  548. {
  549. ConverterVisible = Visibility.Collapsed;
  550. ConverterRegion.RequestNavigate(ConverterRegionName, HomePageConverterDialogModel.GetConverter[index], param);
  551. ConverterVisible = Visibility.Visible;
  552. }
  553. else { ConverterVisible = Visibility.Collapsed; }
  554. }
  555. #endregion
  556. #region 构架行为
  557. public void OnNavigatedTo(NavigationContext navigationContext)
  558. {
  559. List<string> filepath = new List<string>();
  560. int convertertypeindex=0;
  561. navigationContext.Parameters.TryGetValue<List<string>>(ParameterNames.FilePath, out filepath);
  562. navigationContext.Parameters.TryGetValue<int>("ConverterTypeIndex", out convertertypeindex);
  563. if (filepath != null)
  564. {
  565. fileNames = filepath;
  566. PDFFileCount();
  567. updateListview("待确定");
  568. ChangeConverter(convertertypeindex);
  569. }
  570. }
  571. public bool IsNavigationTarget(NavigationContext navigationContext)
  572. {
  573. return true;
  574. }
  575. public void OnNavigatedFrom(NavigationContext navigationContext)
  576. {
  577. ConverterHelper.Clear();
  578. }
  579. #endregion
  580. }
  581. }