Files
NebulaLauncher/Nebula.Launcher/ViewModels/ServerListViewModel.cs
2026-03-12 21:25:38 +03:00

49 lines
1.2 KiB
C#

using System;
using System.Collections.ObjectModel;
using Nebula.Launcher.ServerListProviders;
using Nebula.Launcher.ViewModels.Pages;
using Nebula.Launcher.Views;
using Nebula.Shared.ViewHelper;
namespace Nebula.Launcher.ViewModels;
[ViewModelRegister(typeof(ServerListView), false)]
public partial class ServerListViewModel : ViewModelBase
{
public ObservableCollection<IListEntryModelView> ServerList { get; private set; } = new();
public ObservableCollection<Exception> ErrorList { get; private set; } = new();
private BaseServerListProvider? _provider;
public void ClearProvider()
{
ServerList.Clear();
ErrorList.Clear();
GC.Collect();
GC.WaitForPendingFinalizers();
}
public void SetProvider(BaseServerListProvider provider)
{
_provider = provider;
OnPropertyChanged(nameof(ServerList));
OnPropertyChanged(nameof(ErrorList));
RefreshFromProvider();
}
public void RefreshFromProvider()
{
_provider?.LoadServerList(ServerList, ErrorList);
}
protected override void InitialiseInDesignMode()
{
SetProvider(new TestServerList());
}
protected override void Initialise()
{
}
}