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)