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 Presentation Foundation Discussion :

Comment utiliser delegate en WPF


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 18
    Par défaut Comment utiliser delegate en WPF
    Bonsoir,

    Quelqu'un peut m'aider avec ce code svp:

    *************

    Ce namespace à ne pas toucher car il appartient à une api (.dll) que j'utilise.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    namespace Sipek.Common
    {
        public delegate void DAccountStateChanged(int accountId, int accState);
    }
    *************

    Le code à modifier:

    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
     
    namespace MaSolution
    {
    public partial class MainWindow : Window
    {
    public Constructeur()
    {
            registrar.AccountStateChanged += new DAccountStateChanged(proxy_AccountStateChanged);
    }
     
    void proxy_AccountStateChanged(int accountId, int accState)
        {
          if (this.InvokeRequired)
          {
            Invoke(new DAccountStateChanged(proxy_AccountStateChanged), new object[] {accountId, accState});
          }
          else 
          {
            sync_AccountStateChanged(accountId, accState);
          }
        }
     
    private void sync_AccountStateChanged(int accId, int accState)
        {
              this.textBoxStatus.Text = accState.ToString();
        }
    }
    }
    je veux le transformer de windows forms à WPF mais je suis bloqué avec les delegates en wpf.

    Quelqu'un peut m'aider svp.

    Merci d'avance!

  2. #2
    Membre Expert Avatar de meziantou
    Homme Profil pro
    autre
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

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

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Par défaut
    Je pense qu'il faut regarder du coté la propriété Dispatcher de la fenêtre.

    PS : utilise la balise code

  3. #3
    Membre averti
    Inscrit en
    Septembre 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 18
    Par défaut
    Citation Envoyé par meziantou Voir le message
    Je pense qu'il faut regarder du coté la propriété Dispatcher de la fenêtre.

    PS : utilise la balise code
    Oui, j'ai déjà essayé avec Dispatcher mais, vu que je suis pas habitué à l'utiliser j'arrive pas à résoudre le problème pour l'instant!

  4. #4
    Membre chevronné Avatar de MetalGeek
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 412
    Par défaut
    Salut,

    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
     
     
    ...
    ...
    if(this.txt.Dispatcher.Thread != Thread.CurrentThread)
    {
        this.txt.Dispatcher.Invoke(new Action<string>(this.SetText), accTruc.Tostring());
    }
    else this.SetText(accTruc.ToString());
     
    }
     
    private void SetText(string text)
    {
        this.txt.Text = text;
    }

  5. #5
    Membre averti
    Inscrit en
    Septembre 2009
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 18
    Par défaut
    Citation Envoyé par MetalGeek Voir le message
    Salut,

    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
     
     
    ...
    ...
    if(this.txt.Dispatcher.Thread != Thread.CurrentThread)
    {
        this.txt.Dispatcher.Invoke(new Action<string>(this.SetText), accTruc.Tostring());
    }
    else this.SetText(accTruc.ToString());
     
    }
     
    private void SetText(string text)
    {
        this.txt.Text = text;
    }
    Merci bien!

    C'est le code que j'ai besoin! J'ai testé et ça marche

    Vous m'avez sauvé la vie! Merci une autre fois!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 24/02/2009, 12h06
  2. [C# 2.0][Form]Comment utiliser les Delegates & Threading
    Par Tips dans le forum Windows Forms
    Réponses: 8
    Dernier message: 08/01/2006, 14h22
  3. comment utiliser actionscript ?
    Par webs dans le forum Flash
    Réponses: 3
    Dernier message: 09/02/2003, 23h11
  4. Comment utiliser OUT ?
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 3
    Dernier message: 20/07/2002, 09h35
  5. Réponses: 5
    Dernier message: 11/06/2002, 15h21

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