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 :

[WPF] paramétrer un Path


Sujet :

Windows Presentation Foundation

  1. #1
    maa
    maa est déconnecté
    Membre éclairé
    Avatar de maa
    Inscrit en
    Octobre 2005
    Messages
    672
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Octobre 2005
    Messages : 672
    Par défaut [WPF] paramétrer un Path
    Bonjour,

    En wpf, il est possible de binder une valeur d'un dictionnaire en écrivant le path suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <TextBox Text="{Binding Path=MyDictionary[aKey]}" />
    MyDictionary est une propriété de type Dictionary<string, string> et "aKey" est une clé du dictionnaire.

    Maintenant j'aimerais pouvoir paramétrer la valeur de la clé, c'est à dire prendre sa valeur dans une propriété d'une autre classe au lieu d'écrire directement sa valeur dans le path. Est-ce possible ? En utilisant une resource par exemple ? Comment faire cela ?

    Merci d'avance pour votre aide,

    mathmax

  2. #2
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    J'ai rien compris.....

  3. #3
    maa
    maa est déconnecté
    Membre éclairé
    Avatar de maa
    Inscrit en
    Octobre 2005
    Messages
    672
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Octobre 2005
    Messages : 672
    Par défaut
    En clair je voudrais utiliser une variable entre les crochets dans le path. Est-ce possible ?

  4. #4
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Tu as essayé de faire du binding dessus ?

    Je te garantie pas que ca marche mais ca coute rien d'essayer

  5. #5
    maa
    maa est déconnecté
    Membre éclairé
    Avatar de maa
    Inscrit en
    Octobre 2005
    Messages
    672
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Octobre 2005
    Messages : 672
    Par défaut
    Je comprends pas ce que tu voudrais que j'essaie.

  6. #6
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Un truc du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <TextBox Text="{Binding Path=MyDictionary[{Binding ....}]}" />

  7. #7
    maa
    maa est déconnecté
    Membre éclairé
    Avatar de maa
    Inscrit en
    Octobre 2005
    Messages
    672
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Octobre 2005
    Messages : 672
    Par défaut
    Non, ça ne semble pas marcher. J'obtiens l'erreur suivante :

    Input string was not in a correct format.

    A moins que le binding entre crochet "reparte" sur la propriété MyDictionary ? Il faudrait peut être alors définir un nouveau binding pour la valeur entre crochet, c'est à dire un binding qui n'est pas sur le même DataContext que le premier. Mais cela est-il possible ?

  8. #8
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Sinon, il faut que tu utilises ceci:

    <TextBox Text="{Binding Path=MyDictionary}" />


    Et avec un Converter et un ConverterParameter, tu devrais pouvoir y arriver...

  9. #9
    maa
    maa est déconnecté
    Membre éclairé
    Avatar de maa
    Inscrit en
    Octobre 2005
    Messages
    672
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Octobre 2005
    Messages : 672
    Par défaut
    Oui mais je retombe sur ce problème :

    http://www.developpez.net/forums/showthread.php?t=467587


    Pas de possibilité de mettre à jour mon dictionnaire avec la méthode ConvertBack...

  10. #10
    maa
    maa est déconnecté
    Membre éclairé
    Avatar de maa
    Inscrit en
    Octobre 2005
    Messages
    672
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Octobre 2005
    Messages : 672
    Par défaut
    A priori on peut paramétrer un Path car la classe PropertyPath possède une propriété PathParameters qui est une collection d'objets.
    En cherchant j'ai trouvé cet article. J'ai alors pensé que les paramètres se mettaient simplement entre parenthèse dans le path (dans mon cas entre les crochets), mais ça ne semble pas être ça...
    Si quelqu'un sait comment ajouter des paramètres à un Path dans le XAML, ça m'interesse beaucoup.

  11. #11
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Etrange, je n'ai rien trouvé là-dessus nul part

  12. #12
    maa
    maa est déconnecté
    Membre éclairé
    Avatar de maa
    Inscrit en
    Octobre 2005
    Messages
    672
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Octobre 2005
    Messages : 672
    Par défaut
    Ok je posterai dès que je trouverais comment faire (si un jour je trouve ). N'hésite pas à me prévenir si tu as des infos.
    Merci pour ton aide.

  13. #13
    Membre très actif
    Avatar de UNi[FR]
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Juin 2002
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Juin 2002
    Messages : 340
    Par défaut
    Sinon tu peux essayer de créer un converter, tu passe en paramétre de ton binding la clé auquel tu associe ton converter et celui-ci te retourne la valeur de ton dictionnaire !

    Edit : Ok, je viens de lire ton autre poste est je comprend un peu mieux le pbl et donc je ne pense pas que ma solution fonctionne !

Discussions similaires

  1. [WPF] créer "path" perso
    Par Zenith dans le forum Windows Presentation Foundation
    Réponses: 28
    Dernier message: 18/11/2009, 10h59
  2. [XSLT] Passer un path en paramètre
    Par Makko dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 10/12/2008, 10h19
  3. Path d'un forward avec paramètres dynamiques
    Par adilooo dans le forum Struts 1
    Réponses: 2
    Dernier message: 29/04/2008, 16h56
  4. Ajout de paramètres dans le path du forward
    Par sylvain_neus dans le forum Struts 1
    Réponses: 6
    Dernier message: 14/11/2007, 17h31
  5. [PEAR] Paramétrer le bon path (inclure_path) pour l'utilisation
    Par rteuteu55 dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 05/06/2006, 11h36

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