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 :

Bizarrerie entre WPF et le Thread.CurrentPrincipal


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Par défaut Bizarrerie entre WPF et le Thread.CurrentPrincipal
    Bonjour,

    Toujours dans la continuité de ma gestion de droit dans le xaml ( http://www.developpez.net/forums/sho...d.php?t=585006 ) j'ai le droit a des "phénomènes" étonnants.

    Le contexte :

    J'ai une fenêtre de login et une fenêtre principal, j'affiche d'abords la fenêtre de login ou l'utilisateur saisi son id/pass et reçoit par un service des données qui vont remplir le Thread.CurrentPrincipal.
    Ensuite je ferme cette fenêtre et ouvre la fenêtre principal je la met en MainWindow.


    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
            void service_LoginCompleted(object sender, LoginCompletedEventArgs e)
            {
                ServiceClient.GetInstance().Service.LoginCompleted -= service_LoginCompleted;
     
                try
                {
                    Thread.CurrentPrincipal = new GenericPrincipal(e.Result.GenericIdentity, e.Result.Roles.ToArray());
                    Window main = new Main();
                    this.Close();
                    main.Show();
                    Application.Current.MainWindow = main;
                }
                catch (TargetInvocationException ex)
                {
                    if (ex.InnerException is MessageSecurityException)
                        txtError.Visibility = Visibility.Visible;
                }
            }
    La mon système de rôle (du topic précédant) fonctionne et affiche les menus correspondant aux rôles.
    Lorsque je clic sur un des menu j'instancie un Usercontrol qui va se mettre au centre de la fenêtre principal.
    J'utilise encore mon système de role dans ces usercontrole mais le problème est que lorsque je suis dans ces usercontroles, les boutons qui devraient apparaitre ne sont pas la en déboguant step by step je remarque que mon Thread.CurrentPrincipal ne contient que de la donnée vide comme si je ne l'avais jamais rempli !

    Est ce que WPF fait quelque chose lors des chargement des controle ? est ce que j'ai changé de thread ?

    Après je pourrais mettre mon GenericPrincipal dans un singleton mais bon cela ne serai pas très conforme aux normes .net ...

    Bref si quelqu'un a une idée pour résoudre ce problème

    merci

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Par défaut
    Et en ajoutant :
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    AppDomain.CurrentDomain.SetThreadPrincipal( Thread.CurrentPrincipal );
    après avoir rempli le Thread.CurrentPrincipal ?

  3. #3
    Membre éprouvé Avatar de anthyme
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    1 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 559
    Par défaut
    ah ca marche !

    Je connaissais pas cette astuce et je ne pensais pas que ce serai si simple

    merci

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

Discussions similaires

  1. Interopérabilitée entre WPF et Silverlight
    Par Archeone dans le forum Windows Presentation Foundation
    Réponses: 9
    Dernier message: 26/07/2010, 10h47
  2. interaction entre WPF et C++
    Par lisco dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 08/07/2009, 11h50
  3. Comment choisir entre WPF et Silverlight ?
    Par blepeign dans le forum Windows Presentation Foundation
    Réponses: 10
    Dernier message: 30/04/2009, 15h35
  4. Réponses: 1
    Dernier message: 04/09/2007, 10h27
  5. message entre dialog box et thread
    Par scorbo dans le forum MFC
    Réponses: 7
    Dernier message: 19/06/2004, 11h01

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