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

Silverlight Discussion :

Passer une variable "globale" en XAML


Sujet :

Silverlight

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Par défaut Passer une variable "globale" en XAML
    Bonjour,

    Pourriez-vous m'aider à résoudre ce problème avant la fin de l'année ?

    Voici le challenge: lorsque j'ouvre une page, je dispose de l'identifiant de l'utilisateur qui est actuellement logué. Par exemple 55. Cette variable est accessible en code behind et pour l'instant, pour pouvoir en disposer dans mon XAML, je suis obligé de me créé un textBox

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <TextBox x:Name="filtreUser" IsReadOnly="True"  Canvas.ZIndex="-1" />
    et sur l'événement "onNavigateTo" de ma page, je vais mettre 55 dans mon textBox

    Dans mon XAML, je peux dès lors écrire un paramètre de mon RIA de la manière suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     <riaControls:DomainDataSource.QueryParameters>
                   <riadata:ControlParameter ParameterName="parUserId" ControlName="filtreUser" PropertyName="Text" RefreshEventName="TextChanged" />
                </riaControls:DomainDataSource.QueryParameters>
    Je voudrais bien écrire mon paramètre de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <riadata:ControlParameter ParameterName="parUserId" Value= "{Binding ...}" />
     
     
    mais comment binder vers une variable ??
    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Peut-être en rajoutant ta variable en resources de App.
    Ensuite tu bind en faisant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {Binding Source={StaticResource lenomquetuasmis}}

  3. #3
    Membre confirmé
    Homme Profil pro
    dev
    Inscrit en
    Mai 2007
    Messages
    73
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : dev
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2007
    Messages : 73
    Par défaut
    Bonjour

    Apparament tu utilise RIA donc si tu utilise l'autentification du RIA (compatible ASPNET) tu dispose dans ton code Silverlight des infos du User

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Par défaut
    Merci pour vos réponses.

    Je dispose effectivement de mes infos users. Mon souci est de rendre cette info accessible dans mon code XAML.

    Dans mon App.xaml j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <Application.Resources>
            <ResourceDictionary>
                <ResourceDictionary.MergedDictionaries>
                    <ResourceDictionary Source="Assets/Styles.xaml"/>
                </ResourceDictionary.MergedDictionaries>
            </ResourceDictionary>
        </Application.Resources>
    Comment rajouter une Variable "MonUserId"?

  5. #5
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Je t'ai donné la solution à toi de faire un peu de recherche quand même...

    App.Resources.Add

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Par défaut
    J'ai ajouté dans App.xaml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.Resources.Add("myResource", clsGlobal.test99)
    test99 est un objet qui contient un integer qui est défini comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Class clsGlobal
            Public Shared test99 As Integer = 99
            End Class
    Je peux en effet accéder dans mon XAML en faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {Binding Source={StaticResource myResource}}
    mais le problème est que ce n'est pas une variable, mais bien une constante.

    Je peux aussi, dans maPage.xaml.vb faire un Me.resources.add("var2", clsGlobal.test99), avec l'avantage qu'à ce moment je peux mettre ce que je veux dans test99 (c'est donc une variable) mais comment y accéder de mon XAML?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {Binding Source={ResourceDictionary  BkeResource}}
    ne fonctionne pas

  7. #7
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Garde la même syntaxe pour le Binding avec StaticResource.

    Le App.Resources.Add tu peux le mettre où tu veux (dans la MainPage.xaml.vb par exemple).

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    876
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 876
    Par défaut
    Voldemor a encore frapé !

    dans maPage.xaml le 777 s'affiche bien dans:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                        <TextBox x:Name="test"  Text="{Binding test99, Source={StaticResource xxx}}"  />
    par contre quand je fais ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                    <riadata:ControlParameter ParameterName="parRevId"  Value="{Binding test99, Source={StaticResource xxx}}"/>
    j'ai l'erreur suivante:
    at System.Windows.Application.LoadComponent(Object component, Uri resourceLocator)
    at myAppli.Contact.InitializeComponent()
    at myAppli.Contact..ctor()
    alors que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <riadata:ControlParameter ParameterName="parRevId"  Value="777"/>
    ne provoque pas d'erreur.

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

Discussions similaires

  1. passer une variable globale
    Par sub-0 dans le forum Langage
    Réponses: 5
    Dernier message: 04/05/2010, 17h24
  2. Réponses: 1
    Dernier message: 17/07/2008, 16h41
  3. [Struts] Passer une variable dans l'url
    Par pilz dans le forum Struts 1
    Réponses: 2
    Dernier message: 30/03/2005, 15h23

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