Toolkit
Najlae LAMBARAA 2 years ago
parent 5bf7da5d3e
commit 6f4122a11a

@ -26,6 +26,7 @@ namespace View.ModelViewPage
NextPageCommand = new Command(NextPage, CanExecuteNext);
PreviousPageCommand = new Command(PreviousPage, CanExecutePrevious);
AddChampionCommand = new Command(Addchampion);
EditChampionCommand = new Command<ChampionVm>(EditChampion);
}
private void NextPage()
@ -68,6 +69,11 @@ namespace View.ModelViewPage
Shell.Current.Navigation.PushAsync(page: new AddChampionPage(new EditChampionViewM(championManagerVm, new EditChampionVm(null), null)));
}
private async void EditChampion(ChampionVm championVM)
{
await Shell.Current.Navigation.PushAsync(new AddChampionPage(new EditChampionViewM(championManagerVm, new EditChampionVm(championVM), championVM)));
}
}
}

@ -6,6 +6,10 @@
x:Class="View.Page.AddChampionPage"
Title="AddChampionPage">
<ContentPage.Resources>
<convert:Base64ToImageConverter x:Key="Base64ToImageConverter"/>
</ContentPage.Resources>
<ScrollView>
<StackLayout HorizontalOptions="Center" VerticalOptions="CenterAndExpand" Spacing="20">
<Label Text="Nouveau Champion" FontSize="Title" HorizontalOptions="Center" />
@ -17,19 +21,30 @@
<StackLayout Orientation="Horizontal" Spacing="10">
<Label Text="Icône:" FontSize="Subtitle" VerticalOptions="Center" />
<ImageButton Source="{Binding EditableChampion.Icon,Converter={StaticResource Base64ToImageConverter}}" Command="{Binding PickIconCommand}" BackgroundColor="#D3D3D3" />
<ImageButton
Source="{Binding EditableChampion.Icon,Converter={StaticResource Base64ToImageConverter}}"
Command="{Binding PickIconCommand}"
BackgroundColor="#D3D3D3"
HeightRequest="50"
Aspect="AspectFit"/>
</StackLayout>
<StackLayout Orientation="Horizontal" Spacing="1">
<Label Text="Image:" FontSize="Subtitle" VerticalOptions="Center" />
<ImageButton Source="{Binding EditableChampion.Image,Converter={StaticResource Base64ToImageConverter}}" Command="{Binding PickImageCommand }" BackgroundColor="#D3D3D3" />
<ImageButton
Source="{Binding EditableChampion.Image,Converter={StaticResource Base64ToImageConverter}}"
Command="{Binding PickImageCommand }"
BackgroundColor="#D3D3D3"
WidthRequest="200"
HeightRequest="200"
Aspect="AspectFit"/>
</StackLayout>
<StackLayout Orientation="Horizontal">
<Label Text="Bio:" FontSize="Subtitle" />
<Entry Text="{Binding EditableChampion.Bio}" Placeholder="Nom du Champion" HorizontalOptions="FillAndExpand" HeightRequest="200" WidthRequest="200" />
<Editor Text="{Binding EditableChampion.Bio}" Placeholder="Nom du Champion" HorizontalOptions="FillAndExpand" HeightRequest="200" WidthRequest="200" />
</StackLayout>
<StackLayout Orientation="Horizontal" Margin="16" Spacing="10">
@ -61,5 +76,7 @@
</StackLayout>
</ScrollView>
</ContentPage>

@ -1,91 +0,0 @@
using System;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Runtime.CompilerServices;
using System.Windows.Input;
using Model;
namespace ViewModels
{
public class DataManagerVM : INotifyPropertyChanged
{
private ObservableCollection<ChampionVm> ChampionsObs { get; set; } = new ObservableCollection<ChampionVm>();
public ReadOnlyObservableCollection<ChampionVm> ChampionVMs { get; private set; }
public int PageId
{
get => _pageId;
set
{
if (_pageId != value)
{
_pageId = value;
OnPropertyChanged();
(PreviousPageCommand as Command).ChangeCanExecute();
(NextPageCommand as Command).ChangeCanExecute();
LoadData();
}
}
}
public int _pageId = 1;
public int PageSize { get; set; } = 5;
public int NbItem
{
get => _nbItem;
set
{
if (_nbItem != value)
{
_nbItem = value;
OnPropertyChanged();
}
}
}
public int _nbItem;
public IDataManager DataManager
{
get => _dataManager;
set
{
if (_dataManager == value) return;
_dataManager = value;
OnPropertyChanged();
LoadData();
}
}
private IDataManager _dataManager;
public ICommand NextPageCommand { get; private set; }
public ICommand PreviousPageCommand { get; private set; }
public DataManagerVM(IDataManager dataManager)
{
DataManager = dataManager;
ChampionVMs = new ReadOnlyObservableCollection<ChampionVm>(ChampionsObs);
NextPageCommand = new Command(
execute: () => { PageId++; },
canExecute: () => { return NbItem - (PageSize * (PageId - 1)) > PageSize; }
);
PreviousPageCommand = new Command(
execute: () => { PageId--; },
canExecute: () => { return PageId > 1; }
);
}
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
=> PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
public event PropertyChangedEventHandler PropertyChanged;
public async void LoadData()
{
ChampionsObs.Clear();
NbItem = await DataManager.ChampionsMgr.GetNbItems();
IEnumerable<Champion> champions = await DataManager.ChampionsMgr.GetItems(PageId - 1, PageSize);
foreach (var item in champions)
{
ChampionsObs.Add(new ChampionVm(item));
}
}
}
}
Loading…
Cancel
Save