Prechádzať zdrojové kódy

页面编辑-因无法删除所有页面,若选中所有页面提取,则需要将「提取后删除页面」复选项置灰

OYXH\oyxh 1 rok pred
rodič
commit
363434e350

+ 2 - 0
PDF Office/Model/ParameterNames.cs

@@ -141,5 +141,7 @@ namespace PDF_Master.Model
         public static string PageEditSelectedIndex = "PageEditSelectedIndex";
 
         public static string PageEditSelectedItems = "PageEditSelectedItems";
+
+        public static string IsDeleteAfterExtract = "IsDeleteAfterExtract";
     }
 }

+ 18 - 5
PDF Office/ViewModels/Dialog/PageEditDialogs/ExtractDialogViewModel.cs

@@ -8,11 +8,13 @@ using Prism.Services.Dialogs;
 using PDF_Master.Model.PageEdit;
 using Prism.Commands;
 using PDF_Master.Model;
+using ComPDFKitViewer.PdfViewer;
 
 namespace PDF_Master.ViewModels.Dialog.PageEditDialogs
 {
-    public class ExtractDialogViewModel:BindableBase,IDialogAware
+    public class ExtractDialogViewModel : BindableBase, IDialogAware
     {
+        private bool isDeleteAfterExtract = true;
         public string Title => "";
 
         public event Action<IDialogResult> RequestClose;
@@ -32,6 +34,16 @@ namespace PDF_Master.ViewModels.Dialog.PageEditDialogs
             }
         }
 
+        private bool isEnabledDeleteAfterExtract = true;
+
+        public bool IsEnabledDeleteAfterExtract
+        {
+            get { return isEnabledDeleteAfterExtract; }
+            set
+            {
+                SetProperty(ref isEnabledDeleteAfterExtract, value);
+            }
+        }
 
         public ExtractDialogViewModel()
         {
@@ -48,8 +60,8 @@ namespace PDF_Master.ViewModels.Dialog.PageEditDialogs
         private void extract()
         {
             DialogParameters valuePairs = new DialogParameters();
-            valuePairs.Add(ParameterNames.DataModel,Model);
-            RequestClose.Invoke(new DialogResult(ButtonResult.OK,valuePairs));
+            valuePairs.Add(ParameterNames.DataModel, Model);
+            RequestClose.Invoke(new DialogResult(ButtonResult.OK, valuePairs));
         }
 
         public bool CanCloseDialog()
@@ -64,7 +76,8 @@ namespace PDF_Master.ViewModels.Dialog.PageEditDialogs
 
         public void OnDialogOpened(IDialogParameters parameters)
         {
-            
+            parameters.TryGetValue<bool>(ParameterNames.IsDeleteAfterExtract, out isDeleteAfterExtract);
+            IsEnabledDeleteAfterExtract = isDeleteAfterExtract ? true : false;
         }
     }
-}
+}

+ 12 - 2
PDF Office/ViewModels/PageEdit/PageEditContentViewModel.cs

@@ -686,7 +686,18 @@ namespace PDF_Master.ViewModels.PageEdit
         /// </summary>
         private void ExtractCommandEvent()
         {
-            dialogs.ShowDialog(DialogNames.ExtractDialog, null, e =>
+            DialogParameters keyValuePairs = new DialogParameters();
+
+            //因无法删除所有页面,若选中所有页面提取,则需要将「提取后删除页面」复选项置灰
+            if (selectedPageList.Count == PageEditItems.Count)
+            {
+                keyValuePairs.Add(ParameterNames.IsDeleteAfterExtract, false);
+            }
+            else
+            {
+                keyValuePairs.Add(ParameterNames.IsDeleteAfterExtract, true);
+            }
+            dialogs.ShowDialog(DialogNames.ExtractDialog, keyValuePairs, e =>
             {
                 if (e.Result == ButtonResult.OK && e.Parameters != null)
                 {
@@ -2354,7 +2365,6 @@ namespace PDF_Master.ViewModels.PageEdit
                 }
                 //插入、替换等更新页码,页码输入框的值未更新
                 RefreshTbPageRange();
-                
             }
             if (needClearUndoHistory)
             {

+ 1 - 0
PDF Office/Views/Dialog/PageEditDialogs/ExtractDialog.xaml

@@ -32,6 +32,7 @@
                     Content="提取后删除页面"
                     FontFamily="Segoe UI"
                     FontSize="14"
+                    IsEnabled="{Binding IsEnabledDeleteAfterExtract}"
                     IsChecked="{Binding Model.IsDeleteAfterExtract, Mode=TwoWay}" />
             </StackPanel>
         </cus:DialogContent.Content>