From 365fc74cb7d2e1ba39f0e808870196932b91aafa Mon Sep 17 00:00:00 2001 From: etudiant Date: Fri, 23 Jun 2023 15:53:37 +0200 Subject: [PATCH] Add Toolkit --- .../View/ModelViewPage/ChampionDetailViewM.cs | 6 +- Sources/View/ModelViewPage/ChampionsViewM.cs | 48 ++-------- .../View/ModelViewPage/EditChampionViewM.cs | 14 ++- Sources/View/Page/ChampionsView.xaml | 6 +- Sources/View/View.csproj | 1 + Sources/ViewModels/ViewM/ChampionManagerVM.cs | 87 +++++++------------ Sources/ViewModels/ViewM/ChampionVm.cs | 41 ++------- Sources/ViewModels/ViewM/EditChampionVm.cs | 79 +++-------------- Sources/ViewModels/ViewModels.csproj | 3 + 9 files changed, 72 insertions(+), 213 deletions(-) diff --git a/Sources/View/ModelViewPage/ChampionDetailViewM.cs b/Sources/View/ModelViewPage/ChampionDetailViewM.cs index b5f399d..dc0efb4 100644 --- a/Sources/View/ModelViewPage/ChampionDetailViewM.cs +++ b/Sources/View/ModelViewPage/ChampionDetailViewM.cs @@ -1,21 +1,21 @@ using System; +using CommunityToolkit.Mvvm.Input; using View.Page; using ViewModels; namespace View.ModelViewPage { - public class ChampionDetailViewM + public partial class ChampionDetailViewM { public ChampionDetailViewM(ChampionManagerVM manager, ChampionVm championVm) { ChampionVM = championVm; - EditChampionCommand = new Command(EditChampion); Manager = manager; } public ChampionVm ChampionVM { get; } private ChampionManagerVM Manager; - public Command EditChampionCommand { get; } + [RelayCommand] private async void EditChampion() { await Shell.Current.Navigation.PushAsync(new AddChampionPage(new EditChampionViewM(Manager, new EditChampionVm(ChampionVM), ChampionVM))); diff --git a/Sources/View/ModelViewPage/ChampionsViewM.cs b/Sources/View/ModelViewPage/ChampionsViewM.cs index 5059e98..e775883 100644 --- a/Sources/View/ModelViewPage/ChampionsViewM.cs +++ b/Sources/View/ModelViewPage/ChampionsViewM.cs @@ -5,70 +5,34 @@ using Model; using System.Windows.Input; using static StubLib.StubData; using System.Collections.ObjectModel; +using CommunityToolkit.Mvvm.Input; namespace View.ModelViewPage { - public class ChampionsViewM + public partial class ChampionsViewM { - public Command NextPageCommand { get; private set; } - public Command PreviousPageCommand { get; } - public Command EditChampionCommand { get; } public ChampionManagerVM championManagerVm { get; } - public Command DeleteChampionCommand { get; private set; } public ChampionsViewM(ChampionManagerVM championManager) { championManagerVm = championManager; - PushToDetailCommand = new Command(PushToDetail); - DeleteChampionCommand = new Command(async (ChampionVm obj) => await championManagerVm.DeleteChampion(obj)); - NextPageCommand = new Command(NextPage, CanExecuteNext); - PreviousPageCommand = new Command(PreviousPage, CanExecutePrevious); - AddChampionCommand = new Command(Addchampion); - EditChampionCommand = new Command(EditChampion); - - } - private void NextPage() - { - championManagerVm.Index++; - RefreshCanExecute(); - - } - private void PreviousPage() - { - championManagerVm.Index--; - RefreshCanExecute(); - } - private bool CanExecutePrevious() - { - return championManagerVm.Index > 1; - } - private bool CanExecuteNext() - { - var val = (this.championManagerVm.Index) < this.championManagerVm.PageTotale; - return val; } - void RefreshCanExecute() - { - - PreviousPageCommand.ChangeCanExecute(); - NextPageCommand.ChangeCanExecute(); - } - - public Command PushToDetailCommand { get; } - public Command AddChampionCommand { get; } + [RelayCommand] private void PushToDetail(ChampionVm champion) { Shell.Current.Navigation.PushAsync(new DetailChampion(new ChampionDetailViewM(championManagerVm, champion))); } - private void Addchampion() + [RelayCommand] + private void AddChampion() { Shell.Current.Navigation.PushAsync(page: new AddChampionPage(new EditChampionViewM(championManagerVm, new EditChampionVm(null), null))); } + [RelayCommand] private async void EditChampion(ChampionVm championVM) { await Shell.Current.Navigation.PushAsync(new AddChampionPage(new EditChampionViewM(championManagerVm, new EditChampionVm(championVM), championVM))); diff --git a/Sources/View/ModelViewPage/EditChampionViewM.cs b/Sources/View/ModelViewPage/EditChampionViewM.cs index b6cecb9..ff9a344 100644 --- a/Sources/View/ModelViewPage/EditChampionViewM.cs +++ b/Sources/View/ModelViewPage/EditChampionViewM.cs @@ -1,23 +1,19 @@ using System; using System.Collections.ObjectModel; +using CommunityToolkit.Mvvm.Input; using Model; using ViewModels; namespace View.ModelViewPage { - public class EditChampionViewM + public partial class EditChampionViewM { - public Command PickIconCommand { get; } - public Command PickImageCommand { get; } public EditChampionViewM(ChampionManagerVM manager, EditChampionVm aditableChampion,ChampionVm championVM) { Manager = manager; EditableChampion = aditableChampion; ChampionVM = championVM; - SaveChampionCommand = new Command(SaveChampion); - PickIconCommand = new Command(async () => await PickIcon()); - PickImageCommand = new Command(async () => await PickImage()); Title = aditableChampion.IsNew ? "Create" : "Update"; } @@ -28,9 +24,8 @@ namespace View.ModelViewPage private ChampionVm ChampionVM; - public Command SaveChampionCommand { get; } - + [RelayCommand] private async void SaveChampion() { Manager.SaveChampion(EditableChampion, ChampionVM); @@ -40,9 +35,9 @@ namespace View.ModelViewPage { get => Characteristics; } - + [RelayCommand] private async Task PickIcon() { var result = await FilePicker.PickAsync(new PickOptions @@ -60,6 +55,7 @@ namespace View.ModelViewPage } } + [RelayCommand] private async Task PickImage() { var result = await FilePicker.PickAsync(new PickOptions diff --git a/Sources/View/Page/ChampionsView.xaml b/Sources/View/Page/ChampionsView.xaml index e235e4d..d8da538 100644 --- a/Sources/View/Page/ChampionsView.xaml +++ b/Sources/View/Page/ChampionsView.xaml @@ -47,7 +47,7 @@ @@ -82,11 +82,11 @@ -