Kaynağa Gözat

页面编辑-删除选择项优化;代码优化等

OYXH\oyxh 1 yıl önce
ebeveyn
işleme
3f7863fe0d

+ 24 - 17
PDF Office/ViewModels/PageEdit/PageEditContentViewModel.cs

@@ -922,7 +922,9 @@ namespace PDF_Master.ViewModels.PageEdit
 
             PageEditHistory history = new PageEditHistory();
             history.InsertIndex = insertIndex;
-            //插入空白页面
+
+            #region 插入空白页面
+
             if ((string)type == ParameterNames.InsertType_Blank)
             {
                 //付费锁
@@ -961,7 +963,11 @@ namespace PDF_Master.ViewModels.PageEdit
                 //选中插入的页面
                 ListSelectedIndex = insertIndex;
             }
-            //插入文件
+
+            #endregion 插入空白页面
+
+            #region 插入文件
+
             else if ((string)type == ParameterNames.InsertType_File)
             {
                 //支持插入格式:PDF、图片、Office格式文件
@@ -1010,6 +1016,11 @@ namespace PDF_Master.ViewModels.PageEdit
                 //里面附带了Undo栈记录,需要提前返回,避免重复记录
                 return;
             }
+
+            #endregion 插入文件
+
+            #region 插入自定义页面
+
             else
             {
                 DialogParameters keyValuePairs = new DialogParameters();
@@ -1043,6 +1054,9 @@ namespace PDF_Master.ViewModels.PageEdit
                       }
                   });
             }
+
+            #endregion 插入自定义页面
+
             IsLoading = Visibility.Collapsed;
 
             //添加记录到Undo栈,清除Redo栈
@@ -1232,24 +1246,17 @@ namespace PDF_Master.ViewModels.PageEdit
                 {
                     index = DoRemoveSelectedPages();
                 }
-
-                ReloadAfterOption(true, true, Tuple.Create(0, PDFViewer.Document.PageCount));
                 //删除后 选中项
                 if (index != -1)
                 {
-                    if (index == PDFViewer.Document.PageCount)
+                    if (index <= PDFViewer.Document.PageCount)
                     {
-                        ListSelectedIndex = index - 1;
-                    }
-                    if (index > PDFViewer.Document.PageCount)
-                    {
-                        ListSelectedIndex = PDFViewer.Document.PageCount - 1;
-                    }
-                    else
-                    {
-                        ListSelectedIndex = index;
+                        index = index + 1;
                     }
                 }
+                GoToPage(new List<int>() { index });
+                ReloadAfterOption(true, true, Tuple.Create(0, PDFViewer.Document.PageCount));
+                
                 IsLoading = Visibility.Collapsed;
             }
         }
@@ -1983,7 +1990,7 @@ namespace PDF_Master.ViewModels.PageEdit
             history.viewmodel = this;
             PDFViewer.UndoManager.AddHistory(history);
 
-            //GoToPage(pageRange);
+            GoToPage(pageRange);
             //刷新页码等
             ReloadAfterOption(true, false, new Tuple<int, int>(0, PDFViewer.Document.PageCount));
             //通知Xaml选中新增的页面,从VM设置选中项会有问题
@@ -1993,13 +2000,13 @@ namespace PDF_Master.ViewModels.PageEdit
             IsAddPages = true;
         }
 
-        public async void GoToPage(List<int> pageRange)
+        public void GoToPage(List<int> pageRange)
         {
             int index = pageRange.Last() - 1;
             //跳转页面 需要写在ReloadAfterOption()之前,不然跳转失败的概率大
             //插入页面需要重新加载 ,不然会有bug(bug:选中最后 一页,粘贴,跳转失败)
             PDFViewer.ReloadDocument();
-            await Task.Delay(500);
+            //await Task.Delay(500);
             PDFViewer.GoToPage(index);
         }