From bfefbc58fadbef6d06af788184da601ec468c20b Mon Sep 17 00:00:00 2001 From: DismissedLight <1686188646@qq.com> Date: Sat, 6 Jul 2024 19:12:50 +0800 Subject: [PATCH] disable interaction when page is initializing --- src/Snap.Hutao/Snap.Hutao/UI/Xaml/View/MainView.xaml | 1 + .../ViewModel/Cultivation/CultivationViewModel.cs | 9 ++++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/Snap.Hutao/Snap.Hutao/UI/Xaml/View/MainView.xaml b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/View/MainView.xaml index 6782dda1..628d5956 100644 --- a/src/Snap.Hutao/Snap.Hutao/UI/Xaml/View/MainView.xaml +++ b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/View/MainView.xaml @@ -48,6 +48,7 @@ shuxc:NavigationViewHelper.PaneCornerRadius="0" CompactPaneLength="48" IsBackEnabled="{x:Bind ContentFrame.CanGoBack, Mode=OneWay}" + IsEnabled="{Binding ElementName=ContentFrame, Path=Content.DataContext.IsInitialized, Mode=OneWay}" IsPaneOpen="True" OpenPaneLength="192" PaneDisplayMode="Left" diff --git a/src/Snap.Hutao/Snap.Hutao/ViewModel/Cultivation/CultivationViewModel.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/Cultivation/CultivationViewModel.cs index f3179873..aa0e2cc3 100644 --- a/src/Snap.Hutao/Snap.Hutao/ViewModel/Cultivation/CultivationViewModel.cs +++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/Cultivation/CultivationViewModel.cs @@ -74,9 +74,12 @@ internal sealed partial class CultivationViewModel : Abstraction.ViewModel { if (await metadataService.InitializeAsync().ConfigureAwait(false)) { - await taskContext.SwitchToMainThreadAsync(); - Projects = cultivationService.Projects; - Projects.MoveCurrentTo(Projects.SourceCollection.SelectedOrDefault()); + using (await EnterCriticalSectionAsync().ConfigureAwait(false)) + { + await taskContext.SwitchToMainThreadAsync(); + Projects = cultivationService.Projects; + Projects.MoveCurrentTo(Projects.SourceCollection.SelectedOrDefault()); + } // Force update when re-entering the page if (Projects.CurrentItem is not null && CultivateEntries is null)