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 :

Binding par Code


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 61
    Par défaut Binding par Code
    Bonjour , je n'arrive pas a faire un binding sur mes données

    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
     TextBox tt = new TextBox();
                            tt.Name = "TxtRDV";                                             
     
                            DataTemplate template = new DataTemplate();
                            FrameworkElementFactory factoryTextBox = new FrameworkElementFactory(typeof(TextBox), tt.Name);
                            if (((System.Collections.CollectionBase)(((System.Windows.Data.ListCollectionView)((System.Windows.Data.CollectionView)(dd.DataContext))).SourceCollection)).Count > 0)
                            {
     
                                Binding bb = new Binding ();
                                bb.Mode = BindingMode.TwoWay;
                                bb.Source = tt;
                                bb.Path = new PropertyPath("tache", ((PersistDATA.CollHeures)((view).CurrentItem)).tache);
                                tt.SetBinding(TextBox.BindingGroupProperty, bb);
     
                factoryTextBox.SetBinding(TextBox.BindingGroupProperty, bb);
     
                            }
                            factoryTextBox.SetValue(TextBox.StyleProperty, tt.Style);
     
                            FrameworkElementFactory factoryTextGrid = new FrameworkElementFactory(typeof(Grid));
                            factoryTextGrid.AppendChild(factoryTextBox);
     
                            template.VisualTree = factoryTextBox;
                            colx.CellTemplate = template;
    Quelqun peut-il m'aider ? Meci beaucoup

  2. #2
    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
    Moi pour mes Binding je n'utilise pas la propriété Source mais ElementName

    ce qui te remplacerai cette ligne
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bb.ElementName = "TxtRDV";
    par contre si l'erreur vient de PathParameter, alors je ne peu pas aider je n'ai jamais utiliser.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 61
    Par défaut
    Non ca ne fonctionne pas , peux tu me montrer l'ensemble du code ou tu fais le binding ?
    Cela pourra peut être m'éclairer , Merci beaucoup

  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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Binding binding = new Binding("BindingVisibility");
    binding.Path = new PropertyPath("IsVisible");
    binding.Converter = new BooleanToVisibilityConverter();
     
    Line line = new Line();
    line.SetBinding(Line.VisibilityProperty, bindingVisibility);
    des fois quand besoin ai j'ajoute un paramètre dans mon converter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    binding.ConverterParameter = varibale
    Dans le doute si tu n'as jamais utilisé (moi cela fait depuis peu que j'ai découvert), les converter permette de transformer un variable en une autre.
    Le converter récupère et renvoi un valeur de type object (donc as peu près n'importe quoi sauf avec une ligne de précision)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [ValueConversion(typeof(type Entrée), typeof(type Retour))]
    pour un exemple de converter voir l'article sur mon ptit blog
    http://workshopdev.blogspot.com/2011...rtisseurs.html

    en espérant que cela te guide

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 12
    Par défaut
    Pourrait on s'il te plais voir plus d'info sur ton code ?
    Du style, la class d'où est tirer la variable tache. Et aussi, le code de ton converteur.

    Enfin, converteur, s'il y en a un car ce n'est pas toujours obligatoire.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 61
    Par défaut
    Tout d'abord Merci a Monkey56 de m'avoir repondu si vite
    En fait ce n'est pas une classe c'est une collection(CollectionBase) que j'applique a ma datagrid.datacontext

    dans le code xaml je mets itemsource={binding} et j'ai une colonne .
    Cette colonne me fait bien le bnding par rapport a cette collection.
    Jusque là ca reste basic.

    Puis j'ai le code plus haut ou je fais des colonnes par code ne sachant pas combien je vais en avoir à l'avance.
    Et la j'essaie de faire mon binding sur tache qui est aussi un element de macollection mais ca ne fonctionne pas.

    Quand je cherche en memoire je vois bien que chaque element de macollection est sur la bonne cellule mais effectivement je n'ai rien dans mon textbox, le binding ne s'est pas effectué.

Discussions similaires

  1. Générer (en code JAVA) la méthode equals dans les classes bindées par JAXB2
    Par greatmaster1971 dans le forum Format d'échange (XML, JSON...)
    Réponses: 0
    Dernier message: 11/12/2013, 16h55
  2. Binding Image par code
    Par blaster681 dans le forum Windows Presentation Foundation
    Réponses: 12
    Dernier message: 13/12/2008, 21h00
  3. Retirer une clé primaire par code
    Par Arrown dans le forum Bases de données
    Réponses: 3
    Dernier message: 28/07/2004, 15h15
  4. [VCL] Scroller un contrôle par code
    Par sbeu dans le forum Composants VCL
    Réponses: 3
    Dernier message: 31/03/2004, 10h39
  5. [VB6] Datagrid afficher ou cacher des colonnes par code
    Par soazig dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 06/02/2003, 17h19

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