Browse Source

自定义控件-暂时处理当前页崩溃的问题

ZhouJieSheng 2 years ago
parent
commit
8f391fac66
1 changed files with 53 additions and 50 deletions
  1. 53 50
      PDF Office/CustomControl/WritableComboBox.xaml.cs

+ 53 - 50
PDF Office/CustomControl/WritableComboBox.xaml.cs

@@ -194,71 +194,74 @@ namespace PDF_Office.CustomControl
                 return;
             }
 
-            switch ((writableComboBox.SelectedItem as ComboBoxItem).Tag.ToString())
+            if ((writableComboBox.SelectedItem as ComboBoxItem).Tag != null)
             {
-                case "AllPage":
-                    if (CommonHelper.GetPagesInRange(ref pageIndexList, "1-" + MaxPageRange, MaxPageRange, new char[] { ',' }, new char[] { '-' }))
-                    {
-                        PageIndexList = pageIndexList;
-                        Text = "1-" + MaxPageRange;
-                    }
-                    break;
-                case "OddPage":
-                    {
-                        string pageRange = "";
-                        for (int i = 1; i <= MaxPageRange; i++)
-                        {
-                            if (i % 2 != 0 || MaxPageRange == 1)
-                            {
-                                if (string.IsNullOrEmpty(pageRange))
-                                {
-                                    pageRange = i.ToString();
-                                }
-                                else
-                                {
-                                    pageRange += "," + i;
-                                }
-                            }
-
-                        }
-                        if (CommonHelper.GetPagesInRange(ref pageIndexList, pageRange, MaxPageRange, new char[] { ',' }, new char[] { '-' }))
+                switch ((writableComboBox.SelectedItem as ComboBoxItem).Tag.ToString())
+                {
+                    case "AllPage":
+                        if (CommonHelper.GetPagesInRange(ref pageIndexList, "1-" + MaxPageRange, MaxPageRange, new char[] { ',' }, new char[] { '-' }))
                         {
                             PageIndexList = pageIndexList;
-                            Text = pageRange;
+                            Text = "1-" + MaxPageRange;
                         }
                         break;
-                    }
-                case "EvenPage":
-                    {
-                        string pageRange = "";
-                        for (int i = 1; i <= MaxPageRange; i++)
+                    case "OddPage":
                         {
-                            if (i % 2 == 0 || MaxPageRange == 1)
+                            string pageRange = "";
+                            for (int i = 1; i <= MaxPageRange; i++)
                             {
-                                if (string.IsNullOrEmpty(pageRange))
+                                if (i % 2 != 0 || MaxPageRange == 1)
                                 {
-                                    pageRange = i.ToString();
+                                    if (string.IsNullOrEmpty(pageRange))
+                                    {
+                                        pageRange = i.ToString();
+                                    }
+                                    else
+                                    {
+                                        pageRange += "," + i;
+                                    }
                                 }
-                                else
-                                {
-                                    pageRange += "," + i;
-                                }
-                            }
 
+                            }
+                            if (CommonHelper.GetPagesInRange(ref pageIndexList, pageRange, MaxPageRange, new char[] { ',' }, new char[] { '-' }))
+                            {
+                                PageIndexList = pageIndexList;
+                                Text = pageRange;
+                            }
+                            break;
                         }
-                        if (CommonHelper.GetPagesInRange(ref pageIndexList, pageRange, MaxPageRange, new char[] { ',' }, new char[] { '-' }))
+                    case "EvenPage":
                         {
-                            PageIndexList = pageIndexList;
-                            Text = pageRange;
+                            string pageRange = "";
+                            for (int i = 1; i <= MaxPageRange; i++)
+                            {
+                                if (i % 2 == 0 || MaxPageRange == 1)
+                                {
+                                    if (string.IsNullOrEmpty(pageRange))
+                                    {
+                                        pageRange = i.ToString();
+                                    }
+                                    else
+                                    {
+                                        pageRange += "," + i;
+                                    }
+                                }
+
+                            }
+                            if (CommonHelper.GetPagesInRange(ref pageIndexList, pageRange, MaxPageRange, new char[] { ',' }, new char[] { '-' }))
+                            {
+                                PageIndexList = pageIndexList;
+                                Text = pageRange;
+                            }
+                            break;
                         }
+                    case "CustomPage":
                         break;
-                    }
-                case "CustomPage":
-                    break;
-                default:
-                    break;
-            }
+                    default:
+                        break;
+                }
 
+            }
             SelectionChanged?.Invoke(sender, e);
         }