From 32a22695e3f73786e4f54e6c410b092467a648d1 Mon Sep 17 00:00:00 2001 From: DismissedLight <1686188646@qq.com> Date: Sat, 6 Jul 2024 17:45:30 +0800 Subject: [PATCH] fix gachalog deletion not refresh view --- .../Snap.Hutao/UI/Xaml/Data/AdvancedCollectionView.cs | 6 ++++-- .../Snap.Hutao/UI/Xaml/View/Page/AnnouncementPage.xaml | 2 +- .../Snap.Hutao/ViewModel/GachaLog/GachaLogViewModel.cs | 4 ---- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/AdvancedCollectionView.cs b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/AdvancedCollectionView.cs index b0c29a00..5bf50eb3 100644 --- a/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/AdvancedCollectionView.cs +++ b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/Data/AdvancedCollectionView.cs @@ -636,8 +636,10 @@ internal class AdvancedCollectionView : IAdvancedCollectionView, INotifyPr view.RemoveAt(itemIndex); if (itemIndex <= CurrentPosition) { - CurrentPosition--; - OnPropertyChanged(nameof(CurrentItem)); + if (itemIndex == CurrentPosition--) + { + OnCurrentChanged(); + } } OnVectorChanged(new VectorChangedEventArgs(CollectionChange.ItemRemoved, itemIndex, item)); diff --git a/src/Snap.Hutao/Snap.Hutao/UI/Xaml/View/Page/AnnouncementPage.xaml b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/View/Page/AnnouncementPage.xaml index 01930fab..d0260d9c 100644 --- a/src/Snap.Hutao/Snap.Hutao/UI/Xaml/View/Page/AnnouncementPage.xaml +++ b/src/Snap.Hutao/Snap.Hutao/UI/Xaml/View/Page/AnnouncementPage.xaml @@ -30,7 +30,7 @@ - + diff --git a/src/Snap.Hutao/Snap.Hutao/ViewModel/GachaLog/GachaLogViewModel.cs b/src/Snap.Hutao/Snap.Hutao/ViewModel/GachaLog/GachaLogViewModel.cs index ea1ff2b0..20f7ee89 100644 --- a/src/Snap.Hutao/Snap.Hutao/ViewModel/GachaLog/GachaLogViewModel.cs +++ b/src/Snap.Hutao/Snap.Hutao/ViewModel/GachaLog/GachaLogViewModel.cs @@ -303,10 +303,6 @@ internal sealed partial class GachaLogViewModel : Abstraction.ViewModel using (await EnterCriticalSectionAsync().ConfigureAwait(false)) { await gachaLogService.RemoveArchiveAsync(Archives.CurrentItem).ConfigureAwait(false); - - // reselect first archive - await taskContext.SwitchToMainThreadAsync(); - Archives.MoveCurrentToFirst(); } }