From 6875c6e718454d193cbe0e8b96051d12c3ef76b0 Mon Sep 17 00:00:00 2001 From: "titouan.louvet" Date: Sat, 20 May 2023 17:18:37 +0200 Subject: [PATCH] Start of databinding, add OnPropertyChanged --- src/Banquale/Banquale/Model/Compte.cs | 59 +++++++++++++- .../Banquale/Model/IPersistanceManager.cs | 2 +- src/Banquale/Banquale/Model/Transactions.cs | 79 +++++++++++++++++-- src/Banquale/Banquale/Stub/Stub.cs | 23 +++++- src/Banquale/Banquale/Views/BalancePage.xaml | 12 ++- .../Banquale/Views/BalancePage.xaml.cs | 6 +- 6 files changed, 160 insertions(+), 21 deletions(-) diff --git a/src/Banquale/Banquale/Model/Compte.cs b/src/Banquale/Banquale/Model/Compte.cs index 0df7fce..4172fb3 100644 --- a/src/Banquale/Banquale/Model/Compte.cs +++ b/src/Banquale/Banquale/Model/Compte.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -7,14 +8,64 @@ using System.Threading.Tasks; namespace Banquale.Model { - public class Compte + public class Compte : INotifyPropertyChanged { - public int Solde { get; set; } - public string Nom { get; set;} + public event PropertyChangedEventHandler PropertyChanged; - public string IBAN { get; set; } + void OnPropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } + + public double Solde + { + get => solde; + set + { + if (solde == value) + return; + solde = value; + OnPropertyChanged(nameof(Solde)); + } + } + private double solde; + + + + public string Nom + { + get => nom; + set + { + if (nom == value) + return; + nom = value; + OnPropertyChanged(nameof(Nom)); + } + } + private string nom; + + public string IBAN + { + get => iBAN; + set + { + if (iBAN == value) + return; + iBAN = value; + OnPropertyChanged(nameof(IBAN)); + } + } + private string iBAN; public List CompteList { get; set; } + + public Compte(int solde, string nom, string iBAN) + { + Solde = solde; + Nom = nom; + IBAN = iBAN; + } } } diff --git a/src/Banquale/Banquale/Model/IPersistanceManager.cs b/src/Banquale/Banquale/Model/IPersistanceManager.cs index 9ebe4c5..601875e 100644 --- a/src/Banquale/Banquale/Model/IPersistanceManager.cs +++ b/src/Banquale/Banquale/Model/IPersistanceManager.cs @@ -10,6 +10,6 @@ namespace Banquale.Model { public (List, List) ChargeDonnee(); - void SauvegardeDonnee(List c, List t); + void SauvegardeDonnee(List c, List t /*, List c2*/); } } diff --git a/src/Banquale/Banquale/Model/Transactions.cs b/src/Banquale/Banquale/Model/Transactions.cs index 8c140d8..8211cb9 100644 --- a/src/Banquale/Banquale/Model/Transactions.cs +++ b/src/Banquale/Banquale/Model/Transactions.cs @@ -1,26 +1,93 @@ using System; using System.Collections.Generic; +using System.ComponentModel; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Banquale.Model { - public class Transactions + public class Transactions : INotifyPropertyChanged { - public int Type { get; private set; } - public int Somme { get; private set; } + void OnPropertyChanged(string propertyName) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } + public int Type + { + get => type; + set + { + if(type == value) + return; + type = value; + OnPropertyChanged(nameof(Type)); + } + } + + private int type; + + public Double Somme + { + get => somme; + set + { + if (somme == value) + return; + somme = value; + OnPropertyChanged(nameof(Somme)); + } + } + private Double somme; - public Compte CompteImplique { get; private set; } + public Compte CompteImplique + { + get => compteImplique; + set + { + if (compteImplique == value) + return; + compteImplique = value; + OnPropertyChanged(nameof(CompteImplique)); + } + } + private Compte compteImplique; - public string Categorie { get; private set; } + public string Categorie + { + get => categorie; + set + { + if (categorie == value) + return; + categorie = value; + OnPropertyChanged(nameof(Categorie)); + } + } + private string categorie; - public Transactions(int type, int somme, Compte compteImplique, string categorie) { + public DateTime Date + { + get => date; + set + { + if (date == value) + return; + date = value; + OnPropertyChanged(nameof(Date)); + } + } + private DateTime date; + + public Transactions(int type, Double somme, Compte compteImplique, string categorie, DateTime date) { Type = type; Somme = somme; CompteImplique = compteImplique; Categorie = categorie; + Date = date; } + + public event PropertyChangedEventHandler PropertyChanged; } } diff --git a/src/Banquale/Banquale/Stub/Stub.cs b/src/Banquale/Banquale/Stub/Stub.cs index a26c151..2b571fb 100644 --- a/src/Banquale/Banquale/Stub/Stub.cs +++ b/src/Banquale/Banquale/Stub/Stub.cs @@ -3,21 +3,36 @@ using Banquale.Model; namespace Banquale.Stub { - public class Stub : IPersistanceManager - { + public class Stub : IPersistanceManager + { - public (List, List) ChargeDonnee() + public (List, List /*, List*/) ChargeDonnee() { Client Client1 = new Client("Jacques", "Morice", "J'aimeLesFrites"); Client Client2 = new Client("Francis", "Begore", "J'aimeLes"); Client Client3 = new Client("Michel", "Boudout", "MonMdP"); + + Compte Compte1 = new Compte(999, "Tatouille", "FR76 9161 9581 6296 8415 2361 004"); + Compte Compte2 = new Compte(9510, "Despoints", "FR76 4785 8569 6914 4152 5263 003"); + Compte Compte3 = new Compte(3519, "Perotte", "FR76 6352 2541 4169 6958 5847 002"); + + + Transactions Transactions1 = new Transactions(0, 55, Compte1, "Test", new DateTime(2023, 6, 21)); + Transactions Transactions2 = new Transactions(1, 54.99, Compte2, "Test", new DateTime(2022, 8, 15)); + Transactions Transactions3 = new Transactions(0, 1000, Compte3, "Test", new DateTime(2020, 9, 1)); + Console.WriteLine(Client1); List ListeClients = new List(); List ListeTransactions = new List(); + //List ListeCompte = new List(); + //ListeCompte.Add( Compte1 ); + //ListeCompte.Add(Compte2); + //ListeCompte.Add(Compte3); + ListeClients.Add(Client1); ListeClients.Add(Client2); ListeClients.Add(Client3); - return (ListeClients, ListeTransactions); + return (ListeClients, ListeTransactions /*, ListeCompte*/); } public void SauvegardeDonnee(List c, List t) diff --git a/src/Banquale/Banquale/Views/BalancePage.xaml b/src/Banquale/Banquale/Views/BalancePage.xaml index bd522da..34491e7 100644 --- a/src/Banquale/Banquale/Views/BalancePage.xaml +++ b/src/Banquale/Banquale/Views/BalancePage.xaml @@ -2,10 +2,11 @@ + Shell.NavBarIsVisible="False" +>