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 Forms Discussion :

Binding vers un usercontrol


Sujet :

Windows Forms

  1. #1
    Membre habitué Avatar de touftouf57
    Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2007
    Messages : 362
    Points : 174
    Points
    174
    Par défaut Binding vers un usercontrol
    Bonjour,

    Je voudrais savoir comment mettre en place un binding vers un userControl depuis un Form.

    Mon formulaire a un référence vers mon objet modèle qui implémente INotifyPropertyChanged.
    Lorsque des modifications sont apportées à mon modèle, je lève l'évènement Propertychanged.
    Et je voudrais répercuter ces modifications dans un usercontrol de mon formulaire.

    Voici le code, provenant de mon formulaire, de binding que je voudrais mettre en place:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Binding binding = new Binding(nameof(userControl.Data),Model,nameof(Model.Data));
    binding.ControlUpdateMode = ControlUpdateMode.OnPropertyChanged;
    binding.DataSourceUpdateMode = DataSourceUpdateMode.Never;
    userControl.DataBindings.Add(binding);
    Une partie du code de mon modèle:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    ....
       RaisePropertyChanged(()=>Data);
    }
     
    public MonSousModel Data
    {
      get{return _data;}
    }
    Une partie du code de mon userControl
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    private MonSousModel _data;
    public MonSousModel Data
    {
      set{_data=value;}
      get{return _data;}
    }
    La classe MonSousModel n'est qu'un simple Dto
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public class MonSousModel
    {
      public string lieu{get;set;}
      public int NbHabitants{get;set;}
    }
    Mais, à l’exécution j'obtiens l'erreur "impossible de mettre en forme la valeur avec le type souhaité".

    Je ne comprends pas pourquoi? Le binding doit-il forcement être un type simple (string, int,...)?

    A savoir que l'instance de MonSousModel change au cours du processus c'est pourquoi je voudrais utiliser le Binding et non une bindingSource.

    Merci pour vos éclaircissements.

  2. #2
    Membre habitué Avatar de touftouf57
    Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    362
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2007
    Messages : 362
    Points : 174
    Points
    174
    Par défaut
    Bon ben à force de chercher et tester, j'ai trouvé.

    Sur mon userControl, la propriété que je voulais binder était du type MonSousModel.
    J'ai testé de mettre le type object et cela fonctionne.

    Bref, j'ai trouvé un "workaround" mais était-ce la bonne solution?
    Je trouve bizarre de devoir binder un object alors que le type de destination est MonSousModel.

    Si vous avez de quoi m'éclairer, merci d'avance.

Discussions similaires

  1. [UserControl] Binding vers le parent
    Par al2000 dans le forum Windows Presentation Foundation
    Réponses: 5
    Dernier message: 26/09/2011, 16h41
  2. Problème de Binding avec un UserControl
    Par birdyz dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 20/02/2009, 12h31
  3. [WPF] Probléme de binding dans un UserControl :(
    Par UNi[FR] dans le forum Windows Presentation Foundation
    Réponses: 6
    Dernier message: 17/07/2008, 15h51
  4. Binding entre deux UserControl
    Par mehdi_ouni dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 11/03/2008, 16h10
  5. [XML] XML Data Binding vers php
    Par noa dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 01/03/2006, 16h31

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