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)