IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Phone .NET Discussion :

Récupération d'une donnée dans une classe


Sujet :

Windows Phone .NET

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2011
    Messages : 36
    Points : 30
    Points
    30
    Par défaut Récupération d'une donnée dans une classe
    Bonjour,

    Alors voilà, je suis en train de créer une appli qui permet de gérer son budget.

    Je m'explique, j'ai une fenetre qui me permet de voir la liste des dépenses à l'aide de listbox. Mes données sont dans un xml.

    Mon premier soucis est que j'aimerais récupérer le total des montants dépensés et les soustraire du budget alloué. J'aimerais le faire dans une listbox mais je ne trouve pas comment accéder à cette donnée qui est dans ma classe Depense.

    En gros, je dois réussir à soustraire mon Total avec mon TotalDep
    Voici le code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    public PhonePageVoirDep()
            {
               InitializeComponent();
                XDocument doc = XDocument.Load("depense.xml");
                var data = from query in doc.Descendants("Depense")
                           select new Depense
                           {
                               Date = (string)query.Element("Date"),
                               TypeDep = (string) query.Element("TypeDep"),
                               Montant = (float)query.Element("Montant"),
                           };
     
                listBox1.ItemsSource = data;
                listBox3.ItemsSource = data;
                listBox4.ItemsSource = data;
                XDocument doc2 = XDocument.Load("donnees.xml");
                var feeds = from query in doc2.Descendants("Personne")
                            select new Personne
                            {
                                Nom=(string)query.Element("Nom"),
                                Budget=(float)query.Element("Budget"),
                                Loyer = (float)query.Element("Loyer"),
                                Electricite = (float)query.Element("Electricite"),
                                Chauffage = (float)query.Element("Chauffage"),
                                Eau = (float)query.Element("Eau"),
                            };
                listBox2.ItemsSource = feeds;
     
     
     
     
            }
     
            public class Personne
            {
                string nom;
                public string Nom
                {
                    get { return nom; }
                    set { nom = value; }
     
                }
                float budget;
                public float Budget
                {
                    get { return budget; }
                    set { budget = value; }
                }
                float loyer;
                public float Loyer
                {
                    get { return loyer; }
                    set { loyer = value; }
                }
     
                float electricite;
                public float Electricite
                {
                    get { return electricite; }
                    set { electricite = value; }
                }
                float chauffage;
                public float Chauffage
                {
                    get { return chauffage; }
                    set { chauffage = value; }
                }
                float eau;
                public float Eau
                {
                    get { return eau; }
                    set { eau = value; }
                }
     
                public float Total
                {
                    get { return budget - loyer- electricite-chauffage-eau; }
     
                }
     
            }
            public class Depense
            {
                    string date;
                    public string Date
                    {
                        get { return date; }
                        set { date = value; }
                    }
                    string typeDep;
                    public string TypeDep
                    {
                        get { return typeDep; }
                        set { typeDep = value; }
                    }
                    float montant;
                    public float Montant
                    {
                        get { return montant; }
                        set { montant = value; }
                    }
                    float tot = 0;
                    public float TotalDep
                    {
                        get { 
                            tot += montant;
                            return tot; 
                        }
                    }
     
            }

    Merci de votre aide

  2. #2
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 181
    Points : 4 495
    Points
    4 495
    Par défaut
    Une fille qui veut gérer un budget ca ne marchera jamais

    Le problème c'est qu'il n'y a aucun lien entre depense et personne

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2011
    Messages : 36
    Points : 30
    Points
    30
    Par défaut
    Et comment je peux le créer ce lien? ^^

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 181
    Points : 4 495
    Points
    4 495
    Par défaut
    tu ajouter un ID dans ta classe Personne
    et tu ajoutes dans depense PersonneID

    comme ca tu pourras selectionne la liste des dépenses de la personne ID =2

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2011
    Messages : 36
    Points : 30
    Points
    30
    Par défaut
    Mettre tout dans un .xml? Et ne créer qu'une seule classe? Car les dépenses sont allouées à une personne. Ca serait possible ca?

    J'aurais un truc style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
     
     public class Personne
            {
                string nom;
                public string Nom
                {
                    get { return nom; }
                    set { nom = value; }
     
                }
                float budget;
                public float Budget
                {
                    get { return budget; }
                    set { budget = value; }
                }
                float loyer;
                public float Loyer
                {
                    get { return loyer; }
                    set { loyer = value; }
                }
     
                float electricite;
                public float Electricite
                {
                    get { return electricite; }
                    set { electricite = value; }
                }
                float chauffage;
                public float Chauffage
                {
                    get { return chauffage; }
                    set { chauffage = value; }
                }
                float eau;
                public float Eau
                {
                    get { return eau; }
                    set { eau = value; }
                }
     
                public float Total
                {
                    get { return budget - loyer- electricite-chauffage-eau; }
     
                }
                 string date;
                    public string Date
                    {
                        get { return date; }
                        set { date = value; }
                    }
                    string typeDep;
                    public string TypeDep
                    {
                        get { return typeDep; }
                        set { typeDep = value; }
                    }
                    float montant;
                    public float Montant
                    {
                        get { return montant; }
                        set { montant = value; }
                    }
                    float tot = 0;
                    public float TotalDep
                    {
                        get { 
                            tot += montant;
                            return tot; 
                        }
                    }
     
            }
    et mon xml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    <?xml version="1.0" encoding="utf-8" ?>
    <Personne>
      <Nom>Jean</Nom>
      <Budget>1200</Budget>
      <Loyer>500</Loyer>
      <Electricite>20</Electricite>
      <Chauffage>50</Chauffage>
      <Eau>50</Eau>
    <Depense>
        <Date>01/01/2012</Date>
        <TypeDep>Nourriture</TypeDep>
        <Montant>20.00</Montant>
      </Depense>
      <Depense>
        <Date>02/01/2012</Date>
        <TypeDep>Jeux</TypeDep>
        <Montant>15.00</Montant>
      </Depense>
    </Personne>

  6. #6
    Nouveau membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2011
    Messages : 36
    Points : 30
    Points
    30
    Par défaut
    Ok je vai essayer avec l'id

  7. #7
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 181
    Points : 4 495
    Points
    4 495
    Par défaut
    Humm oui c'est une autre possibilité:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Personne
    {
    string Nom {get;set}
    string Prenom {get;set}
    ...
    List<Depense> Depenses {get;set}
    }
    et serialiser le tout

    (et ca doit donner +- l' xml du post #5)

    L'ID est plus dans une philosophie base de données.
    Encapsuler les Depenses dans la classe Personne ne me semble pas spécialement mauvais surtout pour une petite application.

    De plus avec cette technique tu peux faire une propriété ReadOnly qui calcul automatiquement le budget Restant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    float BudgetRestant 
    {
    get {Total - Depenses.Sum(depense=> depense.Montant)
    }

  8. #8
    Nouveau membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2011
    Messages : 36
    Points : 30
    Points
    30
    Par défaut
    j'ai fait ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
     
    namespace WindowsPhoneApplication3
    {
        public partial class PhonePageVoirDep : PhoneApplicationPage
        {
            public PhonePageVoirDep()
            {
                int id = 1;
               InitializeComponent();
               XDocument doc2 = XDocument.Load("donnees.xml");
               var feeds = from query in doc2.Descendants("Personne")
                           select new Personne
                           {
                               Id = id,
                               Nom = (string)query.Element("Nom"),
                               Budget = (float)query.Element("Budget"),
                               Loyer = (float)query.Element("Loyer"),
                               Electricite = (float)query.Element("Electricite"),
                               Chauffage = (float)query.Element("Chauffage"),
                               Eau = (float)query.Element("Eau"),
                           };
     
               listBox2.ItemsSource = feeds;
                XDocument doc = XDocument.Load("depense.xml");
                var data = from query in doc.Descendants("Depense")
                           select new Depense(id)
                           {
     
                               Date = (string)query.Element("Date"),
                               TypeDep = (string) query.Element("TypeDep"),
                               Montant = (float)query.Element("Montant"),
                           };
     
                listBox1.ItemsSource = data;
                listBox3.ItemsSource = data;
                listBox4.ItemsSource = data;
            }
     
            public class Personne
            {
                int id;
                public int Id
                {
                    get { return id; }
                    set { id = value; }
                }
                string nom;
                public string Nom
                {
                    get { return nom; }
                    set { nom = value; }
     
                }
                float budget;
                public float Budget
                {
                    get { return budget; }
                    set { budget = value; }
                }
                float loyer;
                public float Loyer
                {
                    get { return loyer; }
                    set { loyer = value; }
                }
     
                float electricite;
                public float Electricite
                {
                    get { return electricite; }
                    set { electricite = value; }
                }
                float chauffage;
                public float Chauffage
                {
                    get { return chauffage; }
                    set { chauffage = value; }
                }
                float eau;
                public float Eau
                {
                    get { return eau; }
                    set { eau = value; }
                }
     
                public float Total
                {
                    get { return budget - loyer- electricite-chauffage-eau; }
     
                }
     
            }
            public class Depense
            {
                public Depense(int personneId)
                {
                    this.personneId = personneId;
                }
                int personneId;
                public int PersonneId
                {
                    get { return personneId; }
                    set { personneId = value; }
                }
                    string date;
                    public string Date
                    {
                        get { return date; }
                        set { date = value; }
                    }
                    string typeDep;
                    public string TypeDep
                    {
                        get { return typeDep; }
                        set { typeDep = value; }
                    }
                    float montant;
                    public float Montant
                    {
                        get { return montant; }
                        set { montant = value; }
                    }
                    float tot = 0;
                    public float TotalDep
                    {
                        get { 
                            tot += montant;
                            return tot; 
                        }
                    }
     
     
            }
     
        }
     
    }
    Mais je vois toujours pas comment calculer le budget restant...

  9. #9
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 181
    Points : 4 495
    Points
    4 495
    Par défaut
    Euh je suppose que data sera du type List<Depense>

    Et donc DepenseRestante = personne1.Total - data.Sum(depense=> depense.Montant).Where(depense => depense.PersonneId=personne1.Id)

  10. #10
    Nouveau membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2011
    Messages : 36
    Points : 30
    Points
    30
    Par défaut
    Le soucis c'est que je n'ai pas de personne1 vu que je lis cette personne dans mon xml...

  11. #11
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 181
    Points : 4 495
    Points
    4 495
    Par défaut
    C'est du SL?

    puis il faudrait dire comment tu veux ton interface graphique

    tu peux faire ce genre là une seule listbox ou si tu veux
    Une listbox avec la liste des personnes, une listbox avec la liste des dépenses de cette personne

  12. #12
    Nouveau membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2011
    Messages : 36
    Points : 30
    Points
    30
    Par défaut
    en gros, j'ai une listbox avec les dépenses et je veux une textbox ou listbox avec juste le budget restant dans le fond

  13. #13
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 181
    Points : 4 495
    Points
    4 495
    Par défaut
    J'opterai pour la solution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public class Personne
    {
    string Nom {get;set}
    ...
    List<Depense> Depenses{get;set;}
    float BudgetRestant 
    {
    get {Total - Depenses.Sum(depense=> depense.Montant)
    }
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <TextBox 
     Text="{Binding ElementName=listBox1,Path=SelectedItem.BudgetRestant}"
     Width="80" Height="18"> </TextBox>

  14. #14
    Nouveau membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2011
    Messages : 36
    Points : 30
    Points
    30
    Par défaut
    et le listbox1 correspond au listbox qui contient la liste des dépenses?

  15. #15
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 181
    Points : 4 495
    Points
    4 495
    Par défaut
    euh non listbox1 sera binder à la un List<Personne> Personnes que tu auras lu via le fichier xml

    J'ai créer une propriété BudgetRestant dans la class Personne

    et tu auras une deuxieme ListBox :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <ListBox
     ItemsSource="{Binding ElementName=listBox1,Path=SelectedItem.Depenses}"
      </ListBox>
    peut etre renomer listBox1 en listBoxPersonnes :p

  16. #16
    Nouveau membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2011
    Messages : 36
    Points : 30
    Points
    30
    Par défaut
    J'ai fait ca, mais il ne m'indique rien dans mon textbox ou textBlock (qui est plus adéquat en fait ^^)....


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       <TextBlock Height="72" HorizontalAlignment="Left" Margin="278,535,0,0" Name="textBox3" VerticalAlignment="Top" Width="151"  Text="{Binding ElementName=listBox2,Path=SelectedItem.BudgetRestant}" />
    Une autre idée?

  17. #17
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 181
    Points : 4 495
    Points
    4 495
    Par défaut
    Tu peux copier coller ton code? :p
    Je vais tester dans une mini application

  18. #18
    Nouveau membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2011
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2011
    Messages : 36
    Points : 30
    Points
    30
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
     
    using System.Net;
    using System.Windows;
    using System.Windows.Controls;
    using System.Windows.Documents;
    using System.Windows.Input;
    using System.Windows.Media;
    using System.Windows.Media.Animation;
    using System.Windows.Shapes;
    using Microsoft.Phone.Controls;
    using System.Xml.Linq;
     
    namespace WindowsPhoneApplication3
    {
        public partial class PhonePageVoirDep : PhoneApplicationPage
        {
            public PhonePageVoirDep()
            {
     
               InitializeComponent();
               XDocument doc2 = XDocument.Load("donnees.xml");
               var feeds = from query in doc2.Descendants("Personne")
                           select new Personne
                           {
     
                               Nom = (string)query.Element("Nom"),
                               Budget = (float)query.Element("Budget"),
                               Loyer = (float)query.Element("Loyer"),
                               Electricite = (float)query.Element("Electricite"),
                               Chauffage = (float)query.Element("Chauffage"),
                               Eau = (float)query.Element("Eau"),
                           };
     
               listBox2.ItemsSource = feeds;
                XDocument doc = XDocument.Load("depense.xml");
                var data = from query in doc.Descendants("Depense")
                           select new Depense
                           {
     
                               Date = (string)query.Element("Date"),
                               TypeDep = (string) query.Element("TypeDep"),
                               Montant = (float)query.Element("Montant"),
                           };
     
                listBox1.ItemsSource = data;
                listBox3.ItemsSource = data;
                listBox4.ItemsSource = data;
     
            }
     
            public class Personne
            {
     
                string nom;
                public string Nom
                {
                    get { return nom; }
                    set { nom = value; }
     
                }
                  List<Depense> Depenses{get;set;}
                  float BudgetRestant
                  {
                      get { return Total - Depenses.Sum(depense => depense.Montant); }
                  }
                float budget;
                public float Budget
                {
                    get { return budget; }
                    set { budget = value; }
                }
                float loyer;
                public float Loyer
                {
                    get { return loyer; }
                    set { loyer = value; }
                }
     
                float electricite;
                public float Electricite
                {
                    get { return electricite; }
                    set { electricite = value; }
                }
                float chauffage;
                public float Chauffage
                {
                    get { return chauffage; }
                    set { chauffage = value; }
                }
                float eau;
                public float Eau
                {
                    get { return eau; }
                    set { eau = value; }
                }
     
                public float Total
                {
                    get { return budget - loyer- electricite-chauffage-eau; }
     
                }
     
            }
            public class Depense
            {
     
                    string date;
                    public string Date
                    {
                        get { return date; }
                        set { date = value; }
                    }
                    string typeDep;
                    public string TypeDep
                    {
                        get { return typeDep; }
                        set { typeDep = value; }
                    }
                    float montant;
                    public float Montant
                    {
                        get { return montant; }
                        set { montant = value; }
                    }
                    float tot = 0;
                    public float TotalDep
                    {
                        get { 
                            tot += montant;
                            return tot; 
                        }
                    }
     
     
            }
     
        }
     
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
     
    <phone:PhoneApplicationPage 
        x:Class="WindowsPhoneApplication3.PhonePageVoirDep"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
        xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        FontFamily="{StaticResource PhoneFontFamilyNormal}"
        FontSize="{StaticResource PhoneFontSizeNormal}"
        Foreground="{StaticResource PhoneForegroundBrush}"
        SupportedOrientations="Portrait" Orientation="Portrait"
        mc:Ignorable="d" d:DesignHeight="768" d:DesignWidth="480"
        shell:SystemTray.IsVisible="True">
     
        <!--LayoutRoot est la grille racine où tout le contenu de la page est placé-->
        <Grid x:Name="LayoutRoot" Background="Transparent">
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="*"/>
            </Grid.RowDefinitions>
     
            <!--TitlePanel contient le nom de l'application et le titre de la page-->
            <StackPanel x:Name="TitlePanel" Grid.Row="0" Margin="12,17,0,28">
                <TextBlock x:Name="ApplicationTitle" Text="Votre budget en un tour de main!" Style="{StaticResource PhoneTextNormalStyle}"/>
                <TextBlock x:Name="PageTitle" Text="Vos dépenses" Margin="9,-7,0,0" Style="{StaticResource PhoneTextTitle1Style}"/>
            </StackPanel>
     
            <!--ContentPanel - placez tout contenu supplémentaire ici-->
            <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
                <ListBox Height="49" Margin="367,29,27,0" Name="listBox2" VerticalAlignment="Top">
                    <ListBox.ItemTemplate>
                        <DataTemplate>
                            <StackPanel Margin="0" >
                                <TextBlock Text="{Binding Total}"/>
                            </StackPanel>
                        </DataTemplate>
                    </ListBox.ItemTemplate>
                </ListBox>
                <ListBox Height="365" HorizontalAlignment="Left" Margin="25,161,0,0" Name="listBox1" VerticalAlignment="Top" Width="94">
                    <ListBox.ItemTemplate>
                        <DataTemplate>
                            <StackPanel Margin="0" >
                                <TextBlock Text="{Binding Date}"/>
                            </StackPanel>
                        </DataTemplate>
                    </ListBox.ItemTemplate>
                </ListBox>
                <ListBox Height="365" HorizontalAlignment="Left" Margin="125,161,0,0" Name="listBox3" VerticalAlignment="Top" Width="204">
                    <ListBox.ItemTemplate>
                        <DataTemplate>
                            <StackPanel Margin="0">
                                <TextBlock Text="{Binding TypeDep}" />
                            </StackPanel>
                        </DataTemplate>
                    </ListBox.ItemTemplate>
                </ListBox>
                <ListBox Height="365" HorizontalAlignment="Left" Margin="335,161,0,0" Name="listBox4" VerticalAlignment="Top" Width="94">
                    <ListBox.ItemTemplate>
                        <DataTemplate>
                            <StackPanel Margin="0">
                                <TextBlock Text="{Binding Montant}" />
                            </StackPanel>
                        </DataTemplate>
                    </ListBox.ItemTemplate>
                </ListBox>
                <TextBox Height="72" HorizontalAlignment="Left" Margin="25,18,0,0" Name="textBox1" Text="Votre budget :" VerticalAlignment="Top" Width="234" />
                <TextBox Height="72" HorizontalAlignment="Left" Margin="25,529,0,0" Name="textBox2" Text="Restant : " VerticalAlignment="Top" Width="182" />
     
                <TextBox Height="72" HorizontalAlignment="Left" Margin="24,96,0,0" Name="textBox4" Text="Date        Type de dépense            Montant" VerticalAlignment="Top" Width="426" FontSize="20" />
                <TextBlock Height="72" HorizontalAlignment="Left" Margin="278,535,0,0" Name="textBox3" VerticalAlignment="Top" Width="151"  Text="{Binding ElementName=listBox2,Path=SelectedItem.BudgetRestant}" />
            </Grid>
        </Grid>
     
        <!--Exemple de code illustrant l'utilisation de l'ApplicationBar-->
        <!--<phone:PhoneApplicationPage.ApplicationBar>
            <shell:ApplicationBar IsVisible="True" IsMenuEnabled="True">
                <shell:ApplicationBarIconButton IconUri="/Images/appbar_button1.png" Text="Bouton 1"/>
                <shell:ApplicationBarIconButton IconUri="/Images/appbar_button2.png" Text="Bouton 2"/>
                <shell:ApplicationBar.MenuItems>
                    <shell:ApplicationBarMenuItem Text="ÉlémentMenu 1"/>
                    <shell:ApplicationBarMenuItem Text="ÉlémentMenu 2"/>
                </shell:ApplicationBar.MenuItems>
            </shell:ApplicationBar>
        </phone:PhoneApplicationPage.ApplicationBar>-->
     
    </phone:PhoneApplicationPage>

  19. #19
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Février 2003
    Messages
    2 181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 2 181
    Points : 4 495
    Points
    4 495
    Par défaut
    Bon c'est pas bo

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
        public class Personne
        {
            public string Nom { get; set; }
     
            public float Budget { get; set; }
            public float Loyer { get; set; }
            public float Electricite { get; set; }
            public float Chauffage { get; set; }
            public float Eau { get; set; }
     
            public List<Depense> Depenses { get; set; }
     
            public float Total { get { return Budget - Loyer - Electricite - Chauffage - Eau; } }
     
            public float BudgetRestant { get { return Total - Depenses.Sum(depense => depense.Montant); } }
     
        }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
     
        public partial class MainWindow : Window
        {
     
            private List<Personne> Personnes;
     
            public MainWindow()
            {
                Personnes = new List<Personne>();
     
                Personne personne;
                List<Depense> depenses;
                Depense depense;
     
                personne = new Personne();
                personne.Nom = "Toto";
                personne.Budget = 1000;
                depenses = new List<Depense>();
     
                depense = new Depense();
                depense.Montant = 100;
                depenses.Add(depense);
                personne.Depenses = depenses;
                depense = new Depense();
                depense.Montant = 200;
                depenses.Add(depense);
     
                Personnes.Add(personne);
     
                personne = new Personne();
                personne.Nom = "Tata";
                personne.Budget = 1000;
                depenses = new List<Depense>();
     
                depense = new Depense();
                depense.Montant = 100;
                depenses.Add(depense);
     
                depense = new Depense();
                depense.Montant = 200;
                depenses.Add(depense);
                personne.Depenses = depenses;
                Personnes.Add(personne);
     
                InitializeComponent();
                listBoxPersonnes.ItemsSource = Personnes;
     
     
            }
        }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <Window x:Class="WpfApplication1.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="MainWindow">
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="100"/>
                <RowDefinition Height="5"/>
                <RowDefinition Height="100"/>
                <RowDefinition Height="5"/>
                <RowDefinition Height="25"/>
            </Grid.RowDefinitions>
            <ListBox Grid.Row="0" Name="listBoxPersonnes" > </ListBox>
            <ListBox  Grid.Row="2" ItemsSource="{Binding ElementName=listBoxPersonnes,Path=SelectedItem.Depenses}"></ListBox>
            <TextBlock Grid.Row="4" Text="{Binding ElementName=listBoxPersonnes,Path=SelectedItem.BudgetRestant}" ></TextBlock>
        </Grid>
    </Window>
    Un des problème c'est quand Personnes.Depenses vaut null ca fait une joli exception dans les traces se serait bien de faire un check dans BudgetRestant
    et ca affiche WpfApplication1.Personne au lieu du nom de la personne mais bon c'est pour te donner une piste...

    sinon faut prendre des cours particulier

    ah oui c'est du wpf , jamais fais du WP + SL mais je suppose que ca doit rester la même chose

  20. #20
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 170
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 170
    Points : 7 422
    Points
    7 422
    Billets dans le blog
    1
    Par défaut
    Juste comme ça en passant :

    je vois des FLOAT un peu partout.

    Remplace-les par des DECIMAL.

    Tu auras moins de mauvaises surprises quand tu auras besoin de faire des calculs. C'est légèrement plus lent, mais au moins t'as pas des trucs genre 1+1=1.9999

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [Toutes versions] coller les données d'une plage d'une cellule dans une cellule d'une autre feuille[VBA]
    Par arthson dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/01/2012, 17h37
  2. [WD16] Lecture donnée d'une base dans une valeur d'une autre base
    Par gef13 dans le forum WinDev
    Réponses: 2
    Dernier message: 16/11/2011, 09h05
  3. [AC-2003] insert des données d'une table dans une table d'une base externe
    Par marieo dans le forum VBA Access
    Réponses: 1
    Dernier message: 30/11/2009, 14h29
  4. Envoyer une formulaire dans une page dans une Frame
    Par zooffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 29/06/2007, 10h13
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo