Ca fonctionne : Binding Espece -> Detail Espece
continuous-integration/drone/push Build is failing Details

pull/18/head
Leana BESSON 2 years ago
parent 1959b09e87
commit a498edd970

@ -8,7 +8,7 @@ using static System.Runtime.InteropServices.JavaScript.JSType;
namespace Model
{
public class Espece
public class Espece
{
public string Nom { get; }
public string NomScientifique { get; }
@ -23,7 +23,6 @@ namespace Model
public string Entretien { get; }
public string Cout { get; }
public string Conseil { get; }
public Espece(string nom = "", string nomScientifique = "", string image = "", string esperanceVie = "", string poidsMoyen = "", string tailleMoyenne = "", HashSet<Race>? races = null, string comportement = "", string sante = "", string education = "", string entretien = "", string cout = "", string conseil = "")
{

@ -25,8 +25,8 @@ namespace Model
Races.Add(new("Abyssin"));
Races.Add(new("American curl"));
listeEspeces.Add(new("Chien", "Canis lupus familiaris", "chien.png"));
listeEspeces.Add(new("Chat", "Felis catus", "chat.png", "15 à 20 ans", "15 à 20 kg", "10 à 15 cm", Races));
listeEspeces.Add(new("Chien", "Canis lupus familiaris", "chien.jpg"));
listeEspeces.Add(new("Chat", "Felis catus", "chat.jpg", "15 à 20 ans", "15 à 20 kg", "10 à 15 cm", Races, "Les chats ont un comportement très solitaire", "Les chats ont une bonne santé", "Les chats s'éduque assez facilement", "Il faut changé leur caisse mais il se nettoie seul, sauf les chatons", "Vétérinaire, alimentation adapté, jouet", "Un conseil"));
listeEspeces.Add(new("Hamster", "Cricetinae"));
listeEspeces.Add(new("Lapin", "Oryctolagus cuniculus"));
}

@ -1,18 +1,13 @@
using Model;
using System.ComponentModel;
using System.Runtime.CompilerServices;
namespace Views
{
public partial class App : Application
public partial class App : Application, INotifyPropertyChanged
{
public Especetheque Especetheque { get; private set; } = new Especetheque();
public Espece EspeceSelectionner {
get => EspeceSelectionner;
set
{
EspeceSelectionner = value;
OnPropertyChanged(nameof(EspeceSelectionner));
}
}
public Espece EspeceSelectionner;
public App()
{
InitializeComponent();

@ -2,10 +2,152 @@
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Views.DetailEspece"
Title="DetailEspece">
<VerticalStackLayout>
<Label Text="Bienvenue"/>
<Label Text="{Binding Nom}"/>
<Label Text="{Binding NomScientifique}"/>
</VerticalStackLayout>
Title="{Binding Nom}">
<ScrollView>
<VerticalStackLayout>
<Image Source="{Binding Image}"
MaximumWidthRequest="300"
Margin="20"
HorizontalOptions="Center"/>
<Border Stroke="{StaticResource Secondary}"
StrokeThickness="2"
Margin="20"
Padding="10"
Background="{StaticResource Primary}"
VerticalOptions="Start"
Grid.Column="1">
<Grid RowDefinitions="Auto, *, *, *, *"
ColumnDefinitions="*, *"
RowSpacing="10">
<Label FontAttributes="Bold"
Text="Nom Scientifique"/>
<Label Grid.Column="1"
HorizontalOptions="End"
Text="{Binding NomScientifique}"/>
<Label Grid.Row="1"
FontAttributes="Bold"
Text="Espérance de vie"/>
<Label Grid.Column="2"
Grid.Row="1"
HorizontalOptions="End"
Text="{Binding EsperanceVie}"/>
<Label Grid.Row="2"
FontAttributes="Bold"
Text="Poids moyen"/>
<Label Grid.Column="2"
Grid.Row="2"
HorizontalOptions="End"
Text="{Binding PoidsMoyen}"/>
<Label Grid.Row="3"
FontAttributes="Bold"
Text="Taille moyenne"/>
<Label Grid.Column="2"
Grid.Row="3"
HorizontalOptions="End"
Text="{Binding TailleMoyenne}"/>
</Grid>
</Border>
<VerticalStackLayout
Margin="20">
<Label Text="Comportement"
FontSize="Large"/>
<Label Text="{Binding Comportement}"
Padding="10"
Background="{StaticResource Primary}"/>
</VerticalStackLayout>
<VerticalStackLayout
Margin="20">
<Label Text="Santé"
FontSize="Large"/>
<Label Text="{Binding Sante}"
Padding="10"
Background="{StaticResource Primary}"/>
</VerticalStackLayout>
<VerticalStackLayout
Margin="20">
<Label Text="Education"
FontSize="Large"/>
<Label Text="{Binding Education}"
Padding="10"
Background="{StaticResource Primary}"/>
</VerticalStackLayout>
<VerticalStackLayout
Margin="20">
<Label Text="Entretien"
FontSize="Large"/>
<Label Text="{Binding Entretien}"
Padding="10"
Background="{StaticResource Primary}"/>
</VerticalStackLayout>
<VerticalStackLayout
Margin="20">
<Label Text="Coût potentiel"
FontSize="Large"/>
<Label Text="{Binding Cout}"
Padding="10"
Background="{StaticResource Primary}"/>
</VerticalStackLayout>
<VerticalStackLayout
Margin="20">
<Label Text="Conseils"
FontSize="Large"/>
<Label Text="{Binding Conseil}"
Padding="10"
Background="{StaticResource Primary}"/>
</VerticalStackLayout>
<Grid RowDefinitions="Auto, *"
RowSpacing="20"
Padding="20">
<Label Text="Les races"
FontSize="Large"/>
<ListView ItemsSource="{Binding ListeRaces}"
Grid.Row="1">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Grid Margin="0,0,0,4">
<Border Stroke="{StaticResource Secondary}"
StrokeThickness="2"
Margin="10"
Padding="10"
BackgroundColor="{StaticResource Primary}">
<Grid ColumnDefinitions="Auto, *"
RowDefinitions="3*, *, *"
ColumnSpacing="15">
<Frame Grid.RowSpan="3"
WidthRequest="80"
HeightRequest="80"
Padding="0"
Margin="10"
BorderColor="{StaticResource Primary}" >
<Image Source="{Binding Image}"/>
</Frame>
<Label Text="{Binding Nom}"
Grid.Column="1"
Grid.Row="0"
FontSize="Medium"/>
<Label Text="{Binding NomScientifique}"
Grid.Column="1"
Grid.Row="1"
FontSize="15"/>
</Grid>
</Border>
</Grid>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</Grid>
</VerticalStackLayout>
</ScrollView>
</ContentPage>

@ -1,10 +1,11 @@
using Model;
using System.ComponentModel;
namespace Views;
public partial class DetailEspece : ContentPage
{
public DetailEspece()
public DetailEspece()
{
InitializeComponent();
BindingContext = (App.Current as App).EspeceSelectionner;

@ -2,12 +2,10 @@
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Views.Especes"
Title="Especes">
Title="Les espèces">
<Grid RowDefinitions="Auto, *"
RowSpacing="20"
Padding="20">
<Label Text="Les espèces"
FontSize="Large"/>
<ListView ItemsSource="{Binding ListeEspeces}"
Grid.Row="1"
ItemSelected="OnClick">

@ -15,6 +15,6 @@ public partial class Especes : ContentPage
public async void OnClick(object sender, SelectedItemChangedEventArgs e)
{
(App.Current as App).EspeceSelectionner = e.SelectedItem as Espece;
await Shell.Current.GoToAsync("//DetailEspece");
await Navigation.PushAsync(new DetailEspece());
}
}

Loading…
Cancel
Save