diff --git a/DownKyi.Core/Utils/ListHelper.cs b/DownKyi.Core/Utils/ListHelper.cs index 0ad4100..875150c 100644 --- a/DownKyi.Core/Utils/ListHelper.cs +++ b/DownKyi.Core/Utils/ListHelper.cs @@ -39,7 +39,7 @@ public static class ListHelper /// /// /// - public static void InsertUnique(Collection list, T item, int index) + public static void InsertUnique(Collection list, T item, int index, ref T currentSelection) { if (!list.Contains(item)) { @@ -47,8 +47,19 @@ public static class ListHelper } else { + var previousSelection = currentSelection; list.Remove(item); list.Insert(index, item); + if (previousSelection != null && previousSelection.Equals(item)) + { + currentSelection = previousSelection; + } } } + + public static void InsertUnique(Collection list, T item, int index) + { + T defaultSelection = default; + InsertUnique(list, item, index, ref defaultSelection); + } } \ No newline at end of file diff --git a/DownKyi/ViewModels/Dialogs/ViewDownloadSetterViewModel.cs b/DownKyi/ViewModels/Dialogs/ViewDownloadSetterViewModel.cs index 4390a49..327daf2 100644 --- a/DownKyi/ViewModels/Dialogs/ViewDownloadSetterViewModel.cs +++ b/DownKyi/ViewModels/Dialogs/ViewDownloadSetterViewModel.cs @@ -379,7 +379,7 @@ public class ViewDownloadSetterViewModel : BaseDialogViewModel // 将Directory移动到第一项 // 如果直接在ComboBox中选择的就需要 // 否则选中项不会在下次出现在第一项 - ListHelper.InsertUnique(DirectoryList, Directory, 0); + ListHelper.InsertUnique(DirectoryList, Directory, 0,ref _directory); // 将更新后的DirectoryList写入历史中 SettingsManager.GetInstance().SetSaveVideoRootPath(Directory);