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 :

Utiliser une listBox1.DataSource dans une Class [Débutant]


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Utiliser une listBox1.DataSource dans une Class
    Bonjour,
    alors je chercher à affichée la class Voiture dans ma listbox mais j'ai un problème
    ma Class :

    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
     
             public class Voiture
        {
     
            public static  Form1 f1 = Application.OpenForms.OfType<Form1>().FirstOrDefault();
     
            public  int Nombre { get; set; }
            public  string Nom { get; set; }
     
            public static void car()
            {
     
                List<Voiture> Random = new List<Voiture>();
                new Voiture() { Nombre = 5, Nom = "Subaru" };
                new Voiture() { Nombre = 2, Nom = "Fiat" };
     
                f1.listBox1.DataSource = Voiture;
                f1.listBox1.DisplayMember = "Nom";
                f1.textBox1.DataBindings.Add("Text", new List<Voiture>(), "Nombre");
                f1.textBox1.Text = "TEST";
            }
        }
    mais j'ai une erreur


    'Voiture' est un type,qui n'est pas valide dans le contexte donné

    comment je peux faire pour que la lisbox accède à DataSource = Voiture ?
    par contre quand je mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      f1.textBox1.Text = "TEST";
    ça fonctionne
    Dernière modification par Invité ; 20/12/2022 à 01h26.

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 545
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 545
    Par défaut
    Tu définis un type, pas une instance de ta classe, comme dit l'erreur.
    DataSource c'est la source de données pour les infos à afficher, une classe n'est pas une source de données.
    Ce que tu veux sans doute afficher c'est ta liste Random je pense.

    Tu devrais aussi avoir au moins des warnings pour tes lignes 14 et 15.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par umfred Voir le message
    Tu définis un type, pas une instance de ta classe, comme dit l'erreur.
    DataSource c'est la source de données pour les infos à afficher, une classe n'est pas une source de données.
    Ce que tu veux sans doute afficher c'est ta liste Random je pense.

    Tu devrais aussi avoir au moins des warnings pour tes lignes 14 et 15.
    Bonsoir,
    j'ai essayer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
              f1.listBox1.DataSource = Random;
              f1.listBox1.DisplayMember = "Nom";
              f1.textBox1.DataBindings.Add("Text", Random, "Nombre");
    mais sans succès après je ne vois pas se qu'il faut faire je comprends pas

  4. #4
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 972
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 972
    Par défaut
    Dire : "Cela ne marche pas" ne sert à rien.
    Il faut décrire ce qui ne marche pas.
    Quel est le résultat attendu et quel est le résultat obtenu.

    Donc ça marche pas, ça signifie quoi ?
    Tu as toujours le même message d'erreur ?
    Tu n'as pas le comportement attendu ? Mais dans ce cas, c'est quoi le comportement attendu ?

    Je peux déjà deviner que ta liste n'affiche rien.
    Tu créer des voitures mais tu ne les ajoutes jamais à la liste

    Par ailleurs, ton code est écrit à l'envers.
    L'IHM se sert de classes de données, pas l'inverse.
    Ici, tu as fait un couplage entre ta voiture et ta fiche, tu ne pourras pas réutiliser la voiture pour une autre fiche.
    Bref, tu perd le principal objectif et l'avantage de l'objet.

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 545
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 545
    Par défaut
    comme dit, tu fais les choses dans la classe Voiture. donc tant qu'elle n'est pas utilisée/instanciée dans ton programme principale (en utilisant sa méthode car()), il ne se passera pas grand chose.

  6. #6
    Invité
    Invité(e)
    Par défaut DataSource dans une Class
    Bonjour j'ai reussi à mettre dans la listbox

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        var Random = new List<Voiture>();
        Random.Add(new Voiture() { Nombre = 5, Nom = "Subaru" });
    mais je rencontre un autre soussis
    alors j'affiche tous dans la listbox tous fonctionne
    mais je veut ajouter une textbox qui filtre la listbox donc j'ai ajouter

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
           f1.textBox2.TextChanged += (s, e) =>
                    {
                        f1.listBox1.DataSource = Random.Where(x => x.Nom.Contains(f1.textBox2.Text)).ToList();
                    };
    ça recherche bien le texte saisis mais sa actualise pas le Nombre
    comment je peux faire pour synchroniser le text selectionné dans la listBox1.DisplayMember avec le textBox1.DataBindings ? svp ;

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

Discussions similaires

  1. [JSP] Utiliser une classe Java dans du Javascript
    Par BiM dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 11/07/2007, 11h52
  2. [JSP][Tomcat][Débutant] Utiliser une classe dans du JSP
    Par mavina dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 09/05/2007, 11h50
  3. Utiliser une classe personnelle dans un vector
    Par Mindiell dans le forum SL & STL
    Réponses: 16
    Dernier message: 01/03/2007, 17h42
  4. Réponses: 5
    Dernier message: 03/04/2006, 09h57
  5. [Applet]utiliser une classe d'un package dans une applet
    Par jeromejanson dans le forum Applets
    Réponses: 1
    Dernier message: 30/06/2005, 08h13

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