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 :

DisplayMember composé probleme


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 62
    Points : 63
    Points
    63
    Par défaut DisplayMember composé probleme
    Bonjour.

    J'ai une listbox.
    Dedans il y a des Objets A.
    L'objet à pour attribut plusieurs choses dont des booleens.

    J'aimerai faire un DisplayMember un peu évoluer et que si un attribu (booléen) à la valeur true, et bien j'affiche quelque chose sinon non.


    voici, un peu simplifier, ma fonction :

    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
    public string listRight
            {
                get
                {
                    string tmp = "";
                    if (Authoriz)
                        tmp += "Authorize ";
                    if (Read)
                        tmp += "Read ";
                    if (Write)
                        tmp += "Write ";
                    if (Free)
                        tmp += "Free ";
                    if (Copy)
                        tmp += "Copy ";
                    if (Print)
                        tmp += "Print ";
     
                    return tmp;
                }
            }

    Le soucis est que évidement ça ne fonctionne pas. Il m'affiche ne nom de l'objet dans le listbox, exactement comme si j'avais fais une erreur de saisie pour le DisplayMember.

    Est ce que quelqu'un sait pourquoi ça ne marche pas? et éventuellement à des éléments de réponses?

    Merci d'avance

  2. #2
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Août 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2009
    Messages : 13
    Points : 16
    Points
    16
    Par défaut
    Il me semble que DisplayMember est utilisé seulement si tu fais du databinding...

    Si tu fais un override de ToString() et que tu retroune ta string, ça fonctionnera...

    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
     
    public override string ToString()
    {
    string tmp = "";
    if (Authoriz)
    tmp += "Authorize ";
    if (Read)
    tmp += "Read ";
    if (Write)
    tmp += "Write ";
    if (Free)
    tmp += "Free ";
    if (Copy)
    tmp += "Copy ";
    if (Print)
    tmp += "Print ";
     
    return tmp;
    }

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 62
    Points : 63
    Points
    63
    Par défaut
    Merci pour cette réponse, mais sauf si j'ai mal compris, il me semble que ça ne vas pas coller avec ce que je cherche.

    Pour faire simple le DisplayMember est exactement ce qu'il me faut. D'ailleur pour le moment mon appli fonctionne comme cela, avec un affichage tres basique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    private string _Email;
            public string Email
            {
                get { return _Email; }
                set { _Email = value; }
            }
    et


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    listbox.DisplayMember = "Email";

    Sauf que je ne vois pas comment arriver à mes fin en faisant une méthode toString() :/ car d'apres ce que j'ai lu, le seul moyen d'afficher des objets dans une listbox, c'est avec le DisplayMember. (bon apres je me trompe peut etre )

  4. #4
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Août 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2009
    Messages : 13
    Points : 16
    Points
    16
    Par défaut
    D'après ce que je viens de lire dans MSDN, il faut effetivement passer par le databinding. Il te faut donc un truc du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ArrayList Emails = new ArrayList();
    Emails.Add(new Email("foo"));
    Emails.Add(new Email("bar"));
     
    listBox1.DataSource = Emails;
    ListBox1.DisplayMember = "EMail";
    Enfin, pour un exemple plus détaillé:

    http://msdn.microsoft.com/en-us/libr...laymember.aspx

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 62
    Points : 63
    Points
    63
    Par défaut
    Je vais tester une derniere chose puis je vais tenter ta solution. Merci

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 62
    Points : 63
    Points
    63
    Par défaut
    bon j'ai résolu le probleme.

    j'ai fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public string _tmp;
            public string tmp
            {
                get
                {
                    return _tmp;
                }
                set { _tmp = value; }
            }
    Puis j'ai créé une fonction qui me fait la concaténation de la chaine de caractere en fonction des valeurs (des booléen).
    La fonction retourne un string.
    Je l'assigne à tmp.
    je fais un DisplayMember.tmp et pi ça marche.

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

Discussions similaires

  1. probleme dll avec compo visuel
    Par numeror dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 29/03/2014, 00h16
  2. [C#] DisplayMember composé
    Par diaboloche dans le forum Windows Forms
    Réponses: 3
    Dernier message: 29/05/2008, 10h16
  3. Probleme de rafraichissement d'un panel de plusieurs compo.
    Par lilou77 dans le forum Interfaces Graphiques en Java
    Réponses: 5
    Dernier message: 08/12/2005, 13h51
  4. [Kylix] Probleme d'execution de programmes...
    Par yopziggy dans le forum EDI
    Réponses: 19
    Dernier message: 03/05/2002, 14h50
  5. [Kylix] Probleme de nombre flottant!!
    Par yopziggy dans le forum EDI
    Réponses: 5
    Dernier message: 02/05/2002, 10h13

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