Explorar el Código

最近文件列表-补充切换页签时最近文件列表刷新逻辑

ZhouJieSheng hace 1 año
padre
commit
4680881060

+ 15 - 0
PDF Office/ViewModels/HomePanel/RecentFiles/RecentFilesContentViewModel.cs

@@ -182,6 +182,21 @@ namespace PDF_Master.ViewModels.HomePanel.RecentFiles
                 IsListMode = true;
         }
 
+        /// <summary>
+        /// 切换页签后同步更新最近文件列表集合
+        /// </summary>
+        public void UpdateItemSoucre()
+        {
+            var item = RecentFilesGroup[0];
+            var compageitem = Settings.Default.RecentOpenFiles[0];
+            //因为新增文件都会排序到第一个,因此只需要比较集合数量和第一个对象是否一致即可判断两个集合是否一致
+            //如果不一致则更新数据源
+            if (item!=compageitem||RecentFilesGroup.Count!= Settings.Default.RecentOpenFiles.Count)
+            {
+                InitVariables();
+            }
+        }
+
         private void InitCommands()
         {
             RemoveFilesFromContainerCommand = new DelegateCommand<object>(RemoveFilesFromContainer_BtnClick);

+ 1 - 0
PDF Office/Views/HomePanel/RecentFiles/RecentFilesContent.xaml

@@ -13,6 +13,7 @@
     d:DataContext="{d:DesignInstance Type=recentfiles:RecentFilesContentViewModel}"
     d:DesignHeight="450"
     d:DesignWidth="800"
+    IsVisibleChanged="UserControl_IsVisibleChanged"
     prism:ViewModelLocator.AutoWireViewModel="True"
     KeyDown="UserControl_KeyDown"
     Loaded="UserControl_Loaded"

+ 9 - 0
PDF Office/Views/HomePanel/RecentFiles/RecentFilesContent.xaml.cs

@@ -276,5 +276,14 @@ namespace PDF_Master.Views.HomePanel.RecentFiles
                 ViewModel?.LoadPdfViewer(files.ToArray());
             }
         }
+
+        private void UserControl_IsVisibleChanged(object sender, DependencyPropertyChangedEventArgs e)
+        {
+            //已经加载后,切换页签时,确认是否要刷新数据源
+            if(IsLoaded&&(bool)e.NewValue)
+            {
+                ViewModel.UpdateItemSoucre();
+            }
+        }
     }
 }