From e7cc4c832e65a01d5ed738efbb631cee8ceeebe6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=99=BD=E9=BE=99?= <129986544+bailong-Hakuryu@users.noreply.github.com> Date: Fri, 14 Aug 2026 10:38:27 +0800 Subject: [PATCH] Fix tray server selection being cleared after refresh (#9927) (#9928) * Fix tray server selection after refresh (#9927) * Update StatusBarViewModel.cs --------- Co-authored-by: 2dust <31833384+2dust@users.noreply.github.com> --- .../ServiceLib/ViewModels/StatusBarViewModel.cs | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/v2rayN/ServiceLib/ViewModels/StatusBarViewModel.cs b/v2rayN/ServiceLib/ViewModels/StatusBarViewModel.cs index 39c0dfe5..eae93a27 100644 --- a/v2rayN/ServiceLib/ViewModels/StatusBarViewModel.cs +++ b/v2rayN/ServiceLib/ViewModels/StatusBarViewModel.cs @@ -297,21 +297,14 @@ public partial class StatusBarViewModel : MyReactiveObject return; } - var models = new List(); - BlServers = true; - foreach (var it in lstModel) - { - var name = it.GetSummary(); + var models = lstModel.Select(it => new ComboItem { ID = it.IndexId, Text = it.GetSummary() }).ToList(); - var item = new ComboItem() { ID = it.IndexId, Text = name }; - models.Add(item); - if (_config.IndexId == it.IndexId) - { - SelectedServer = item; - } - } + BlServers = true; Servers.Clear(); Servers.AddRange(models); + + // Update the ItemsSource before SelectedItem so a collection reset does not clear the tray selection. + SelectedServer = models.FirstOrDefault(it => it.ID == _config.IndexId) ?? new(); } private void ServerSelectedChanged(bool c)