using System; using CommunityToolkit.Mvvm.Input; using Model; using ViewModels; namespace LolApp.ViewModels { public partial class ApplicationVM { public ChampionsMgrVM ChampionsMgrVM { get; set; } public SkinsMgrVM SkinsMgrVM { get; set; } public ApplicationVM(ChampionsMgrVM championsMgrVM, SkinsMgrVM skinsMgrVM) { ChampionsMgrVM = championsMgrVM; SkinsMgrVM = skinsMgrVM; } [RelayCommand] async Task NavigateToChampionDetailsPage(ChampionVM cvm) { SkinsMgrVM.Champion = cvm; SkinsMgrVM.Index = 0; SkinsMgrVM.Count = 5; await SkinsMgrVM.LoadSkinsCommand.ExecuteAsync(cvm); await App.Current.MainPage.Navigation.PushAsync(new ChampionPage(cvm, this)); } [RelayCommand] async Task NavigateToAddNewChampionPage() => await App.Current.MainPage.Navigation.PushAsync(new AddChampionPage(ChampionsMgrVM)); [RelayCommand(CanExecute = nameof(CanNavigateToEditChampionPage))] async Task NavigateToEditChampionPage(ChampionVM champ) => await App.Current.MainPage.Navigation.PushAsync(new AddChampionPage(ChampionsMgrVM, champ)); bool CanNavigateToEditChampionPage(ChampionVM champ) => champ != null; [RelayCommand] async Task NavigateToSkinDetailsPage(SkinVM svm) { await App.Current.MainPage.Navigation.PushAsync(new SkinPage(svm, this)); } [RelayCommand] async Task NavigateToAddNewSkinPage(ChampionVM champion) => await App.Current.MainPage.Navigation.PushAsync(new AddOrEditSkinPage(SkinsMgrVM, champion)); [RelayCommand(CanExecute = nameof(CanNavigateToEditSkinPage))] async Task NavigateToEditSkinPage(SkinVM skin) => await App.Current.MainPage.Navigation.PushAsync(new AddOrEditSkinPage(SkinsMgrVM, skin)); bool CanNavigateToEditSkinPage(SkinVM skin) => skin != null; } }