You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

61 lines
1.7 KiB

using System.Collections.ObjectModel;
using Model;
namespace ViewModel
{
public class ChampionManagerVM : BaseToolkit
{
public ReadOnlyObservableCollection<ChampionVM> ChampionVMs { get; private set; }
private ObservableCollection<ChampionVM> _championVMs { get; set; } = new ObservableCollection<ChampionVM>();
public IDataManager DataManager
{
get => _dataManager;
set
{
if (_dataManager == value) return;
_dataManager = value;
OnPropertyChanged();
LoadChampions();
}
}
private IDataManager _dataManager;
public ChampionManagerVM(IDataManager dataManager)
{
DataManager = dataManager;
ChampionVMs = new ReadOnlyObservableCollection<ChampionVM>(_championVMs);
PropertyChanged += ChampionManagerVM_PropertyChanged;
}
public int Index
{
get => _index;
set
{
if (_index == value) return;
_index = value;
}
}
private int _index;
public int Count { get; set; } = 5;
private async void ChampionManagerVM_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
{
if (e.PropertyName == nameof(Index))
await LoadChampions();
}
private async Task LoadChampions()
{
_championVMs.Clear();
var champions = await DataManager.ChampionsMgr.GetItems(0, Count);
foreach (var champion in champions)
{
_championVMs.Add(new ChampionVM(champion));
}
}
}
}