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

C# Discussion :

Accesseur pour un DisplayMember de combo bindé


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut Accesseur pour un DisplayMember de combo bindé
    Bonjour

    Voici une question idiote mais dont la reponse pourrait etre instructive

    Il est deja arrivé a beaucoup je pense de voir un combo bindé se remplir non pas des valeurs attendue mais d'une enumeration de type des element sous-jacent de la source

    Genéralement il s'agit d'un simple oubli de déclaration du DisplayMember !

    Mais il y a plus subtil : ca peut ne pas marcher meme si le DisplayMember est déclaré

    Et j'en arrive a ma question

    Ci dessous je declare une liste composée d'element de type C_ADR
    Et je bind la liste a un combo !
    Et ca marche pas : le combo ne m'affiche pas les valeurs des ID;
    Pour les avoir, je dois ajouter un bete accesseur a ID
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
          public int ID  { get; set; }
    Ma question : qu'est ce que cet accesseur ajoute dans la sauce pour que le combo puisse savoir que "ID" doit acceder a ID;
    Je saus que c'est comme ca mais j'aimerais savoit "comment" dans les coulisses !
    Car j'avoue qu'en plus je suis genéralement avare des accesseurs !
    Venant du C je n'ai pas pris l'habitude d'en mettre systématiquement partout !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        public class C_ADR
        {
          public int ID;
          public char TP;
        }
        public class C_MATRIXADR : C_ADR
        {
          public List<C_ADR> Missions = new List<C_ADR>();
        }
     
        public List<C_MATRIXADR> lstTecAdr = new List<C_MATRIXADR>();
     
        cmbAdr.DataSource=lstTecAdr;
        cmbAdr.DispayMamber="ID";

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    109
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 109
    Par défaut
    Le mécanisme de databinding de la combo utilise la reflection pour fonctionner.

    En interne, le databinding utilise la collection de PropertyDescriptor de l'objet.
    Pour obtenir la valeur à afficher il va appeler la méthode GetProperty

    Si l'accesseur n'est pas défini, tu ne peux pas accéder à la valeur de la propriété via le GetProperty et l'affichage est incorrect.

    Une bonne raison de plus pour utiliser des accesseurs et c'est tellement rapide en 3.5

  3. #3
    Membre éclairé
    Homme Profil pro
    Création de jeux video (en amateur)
    Inscrit en
    Mars 2003
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Cantal (Auvergne)

    Informations professionnelles :
    Activité : Création de jeux video (en amateur)
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2003
    Messages : 408
    Par défaut
    C'est peut etre un peu hors sujet, mais si ta combobox est dans un gridview, il faut que tu fasses un accesseur particulier pour utiliser dans le valueMember de la combobox.

    cf cette discussion : http://www.developpez.net/forums/d65...uant-combobox/

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

Discussions similaires

  1. Pertinence des accesseurs pour des JavaBeans en SOA
    Par Glob dans le forum Général Java
    Réponses: 5
    Dernier message: 30/03/2010, 16h27
  2. Combo bindée/Bindingsource & even. ListChanged
    Par bib34690 dans le forum C#
    Réponses: 0
    Dernier message: 14/10/2009, 15h10
  3. Créer un accesseur pour un tableau!
    Par NejNej dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 29/04/2009, 10h40
  4. [Linq to Sql] Accesseur pour une valeur ou association ?
    Par Arnard dans le forum Accès aux données
    Réponses: 0
    Dernier message: 24/10/2008, 10h02
  5. Chargement combo + binding
    Par thorgal1612 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 15/03/2007, 19h09

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