Partage
  • Partager sur Facebook
  • Partager sur Twitter

Communication classe fille vers classe mère

VB.net [WPF]

    16 mai 2011 à 7:58:27

    Salut à tous, j'explique mon problème. J'ai des controls dans ma classe mère(des labels) qui doivent afficher les valeurs d'un mot de maintenance, sauf que ces valeurs sont récupéré et calculé dans une classe fille.
    Donc pour pouvoir modifié le texte affiché par mon label, je suis obligé de mettre mes variable en global, ce qui en soit n'est pas propre celon les règles du codage. Je souhaiterais donc savoir si il y aurait une autre solution s'il vous plait.
    Merci d'avance

    PS: en winform je faisai
    win1.label.texte =""
    
    mais cela ne marche pas en wpf.
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      16 mai 2011 à 11:49:42

      Il faut passer par le Dispatcher de la Window, sinon tu as en effet une exception car tu tentes de modifier l'UI depuis un thread différent de celui qui l'a créée.
      myWindow.Dispatcher.Invoke(New Action(Function() Do
          ' ce que tu veux ici
      End Function))
      

      (j'espère que ça marche, c'est une trad' depuis du C#)
      • Partager sur Facebook
      • Partager sur Twitter
        16 mai 2011 à 12:51:23

        je n'ai aucune exception généré. C'est juste que la modif ne sort pas de la classe fille.
        • Partager sur Facebook
        • Partager sur Twitter
          16 mai 2011 à 13:32:31

          Crée des accesseurs protected dans ta classe mère pour que la classe fille puisse accéder aux contrôles.
          C'est assez moche, mais à mon avis il y a de toute façon un gros problème de conception dans ton code et c'est la solution la plus directe.
          • Partager sur Facebook
          • Partager sur Twitter
            16 mai 2011 à 14:00:36

            En faite j'explique mon code, j'ai fait une interface en wpf pour faire la démonstration d'un capteur de pression. ça c'est ma classe mère.
            J'ai une classe main qui est ma 1ère fenêtre(choix de la langue), puis la classe ou j'ai mon interface de démo. Ensuite j'ai une classe rx_monitor(la fille) qui récupère les données du capteur pour pouvoir les utiliser.

            En faite après réflexion ma question change. Je souhaiterais savoir comment transmettre les donnée récupéré dans la fille à la mère sans utiliser de variable global?
            • Partager sur Facebook
            • Partager sur Twitter
              16 mai 2011 à 14:41:42

              Mais où vois-tu un cas d'héritage dans ton problème ? o_O
              Il n'y a à priori aucune raison que ta classe rx_monitor hérite d'une de tes fenêtres. Il peut y avoir un lien de composition bien entendu, mais pourquoi un héritage ? :o

              En ce qui concerne ceci:

              Citation : Pyrodrag

              Je souhaiterais savoir comment transmettre les donnée récupéré dans la fille à la mère sans utiliser de variable global?


              Voir ma réponse précédente.
              • Partager sur Facebook
              • Partager sur Twitter
                16 mai 2011 à 14:56:41

                peut être que je me trompe pour l'héritage ^^ j'ai des base en orienté objet assez faible ^^.

                Et sinon si je choisi de plus toucher aux controls, mais juste de transferer la valeur de ma variable qui est dans rx monitor à une variable qui est dans ma windows, sans utiliser de variable global. Il faut utiliser des accesseurs ?(plus qu'a trouver un tuto sur ça ^^)
                • Partager sur Facebook
                • Partager sur Twitter
                Anonyme
                  16 mai 2011 à 16:24:18

                  Tu peux utiliser une méthode, si j'ai bien compris.
                  Dans ta fenêtre qui affiche les résultats, ajoute une méthode prenant en paramètre tout ce que tu veux afficher, et qui l'affiche. Puis appelle-la depuis la classe qui récupère les résultats.
                  • Partager sur Facebook
                  • Partager sur Twitter
                    17 mai 2011 à 11:37:26

                    j'ai essayer en utilisant une functiun en shared, mais toujours le même souçi. Une fois sortie de rx_monitor c'est comme si la fonction n'avait jamais était appelé.
                    • Partager sur Facebook
                    • Partager sur Twitter

                    Communication classe fille vers classe mère

                    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                    • Editeur
                    • Markdown