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 :

[C#] Binding et RelativeSource en C# dans un ControlTemplate


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Août 2010
    Messages : 188
    Par défaut [C#] Binding et RelativeSource en C# dans un ControlTemplate
    Bonjour.

    J'utilise déjà des binding du type ci-dessous dans la création de mes Controles personnalisés en XAML.
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    <Border Background={Binding Path=(local:MyUC.MyColor), RelativeSource={RelativeSource TemplatedParent}} />
    Jusque la, aucun problème a l'utilisation.

    Maintenant, est-ce que quelqu'un saurais comment, a la création d'un élément (écrit en C#), définir ce type de Binding, ou un similaire en code C#.

    Pour le moment mon code est similaire a celui ci-dessous:
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Border b = new Border();
    Binding bd = new Binding();
    bd.Path = new PropertyPath("MyColor");
    bd.RelativeSource = new RelativeSource(RelativeSourceMode.TemplatedParent);
    b.SetBinding(Border.BackgroundProperty, bd);

    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
    Salut,

    As-tu essayé de lui ajouter une 'Source' (à affecter suivant ton contexte) :
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Border b = new Border();
    Binding bd = new Binding();
    bd.Source = this;
    bd.Path = new PropertyPath("MyColor");
    bd.RelativeSource = new RelativeSource(RelativeSourceMode.TemplatedParent);
    b.SetBinding(Border.BackgroundProperty, bd);
    Je me dis qu'en xaml ce champ est implicite, à voir...

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Août 2010
    Messages : 188
    Par défaut
    Impossible de définir Binding.RelativeSource pendant l'utilisation de Binding.Source.
    Pas cool ça .

    Punaise, y-a pas à dire, c'est plus simple en XAML.
    Le problème est que la, je doit passer par du C# pour ajouter dynamiquement des éléments.

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2010
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Santé

    Informations forums :
    Inscription : Août 2010
    Messages : 188
    Par défaut
    Toute mes confuse, l'erreur se situait plus loin dans mon code (une partie non indiquer dans les exemples fournit)

    sinon donc le code finale est celui-ci pour ceux que ça intéresse
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Border b = new Border();
    Binding bd = new Binding();
    bd.Path = new PropertyPath("MyColor");
    bd.Source = this;
    b.SetBinding(Border.BackgroundProperty, bd);

  5. #5
    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
    Cool

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

Discussions similaires

  1. [WPF]Binding d'une propriété contenu dans une propriété
    Par Babas007 dans le forum Windows Presentation Foundation
    Réponses: 7
    Dernier message: 23/11/2010, 19h51
  2. Binding d'un champ XML dans un controle
    Par Bibbox dans le forum ASP.NET
    Réponses: 2
    Dernier message: 31/03/2009, 15h57
  3. Binding d'un champ XML dans un controle
    Par Bibbox dans le forum ASP
    Réponses: 0
    Dernier message: 30/03/2009, 19h08
  4. Binding via RelativeSource
    Par Nalfeim dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 11/08/2008, 14h51
  5. [MVC] Binding d'une proprieté 'societe' dans mon formulaire Utilisateur
    Par rlpg123 dans le forum Spring Web
    Réponses: 1
    Dernier message: 26/07/2006, 09h06

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