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 :

List et lien entre 2 objets pour du databinding entre 2 datagridview


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre extrêmement actif Avatar de petitours
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Février 2003
    Messages
    2 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 2 037
    Par défaut List et lien entre 2 objets pour du databinding entre 2 datagridview
    Bonjour

    Je souhaite pouvoir ajouter et modifier des objets "Cycle" dans datagridView1 et ajouter et modifier une liste d'objets "Param" dans datagridView2, liste correspondant au "Cycle" sélectionné dans datagridView1.

    J'ai cru intéressant de créer une classe "Phase" associant un objet "Cycle" à un List<Param>.
    Avec List<Phase> j'obtiens ainsi une liste d'association entre un "Cycle" et un List<Param>

    Je n'arrive pas à donner à DatagridView1.DataSource la liste des "Cycles" de la list<Phase>
    Evidement je n'arrive pas plus à donner à DatagridView1.DataSource la liste<Param> de la phase sélectionnée dans DatagridView1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    List<Phase> myPhases = new List<Phase>();
    BindingSource CycleSource = new BindingSource();
    BindingSource ParamSource = new BindingSource();
     
    CycleSource = myPhases ; // ne marche pas , "pas compatible avec le type Bindingsource" ??????????????
    ParamSource = myPhase[Ligne selectionnée].Parametres ; //ligne imaginaire pour le moment 
     
    dataGridView1.DataSource = CycleSource;
    dataGridView2.DataSource = ParamSource;
    1) Est ce une bonne manière de structurer les données que mon List<Phase> ?
    2) si oui, comment associer à datagridView1.Datasource les "Cycle" contenus dans List<Phase> ?
    3) Si non, quelle serait une bonne méthode pour associer


    Voici les 3 classes Cycle, Param et phase que j'utilise pour tester :
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    class Phase
    {
        public Phase()
        {
            _Cycle = new Cycle();
            _Parametres = new List<Param>();
        }
     
        private Cycle _Cycle;
        public Cycle Cycle
        {
            get { return _Cycle; }
            set { _Cycle = value; }
        }
     
        private List<Param> _Parametres;
        public List<Param> Parametres
        {
            get { return _Parametres; }
            set { _Parametres = value; }
        }
    }
     
     
     
    class Cycle
    {
        public Cycle()
        {
            _AdresseDebut = 0;
            _Nbdepoint = 0;
        }
     
     
        private UInt16 _AdresseDebut;
        public UInt16 AdresseDebut
        {
            get { return _AdresseDebut; }
            set { _AdresseDebut = value; }
        }
     
        private Byte _Nbdepoint;
        public Byte Nbdepoint
        {
            get { return _Nbdepoint; }
            set { _Nbdepoint = value; }
        }
    }
     
    class Param
    {
        public Param()
        {
            _NomParam = "Nom paramètre";
            _TypeVar = 1;
            _Endianess = 0;
            _Modele1 = true;
            _Modele2 = false;
        }
     
        private String _NomParam;
        public String NomParam
        {
            get { return _NomParam; }
            set { _NomParam = value; }
        }
     
        private Byte _TypeVar;
        public Byte TypeVar
        {
            get { return _TypeVar; }
            set { _TypeVar = value; }
        }
     
        private Byte _Endianess;
        public Byte Endianess
        {
            get { return _Endianess; }
            set { _Endianess = value; }
        }
     
        private Boolean _Modele1;
        public Boolean Modele1
        {
            get { return _Modele1; }
            set { _Modele1 = value; }
        }
     
        private Boolean _Modele2;
        public Boolean Modele2
        {
            get { return _Modele2; }
            set { _Modele2 = value; }
        }
    }
    Merci

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    Pour le binding, voici un exemple avec tes données

    J'ai fait ça en 2 minutes... donc, c'est juste la base !!!

    mais ça devrait t'aider à comprendre l'utilisation des bindingSource, des datasources, etc...
    Fichiers attachés Fichiers attachés

  3. #3
    Membre extrêmement actif Avatar de petitours
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Février 2003
    Messages
    2 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 2 037
    Par défaut
    Merci pour le temps

    mais je passer pour un manchot ; je n'arrive pas à ouvrir correctement ce projet ! il ne trouve pas un type petitOurs.cycle...

    J'ai double cliqué sur le PetitOurs.csproj; sur mes projets j'ai un .sln


    Je suis impatient de voir comment ça se goupille, là je me suis embarqué avec un dataset qui contient 2 tables ; ça fonctionne bien mais il y a peut être beaucoup plus simple ! :-P

  4. #4
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    Visual studio 2012

    tu es avec quel version de VS ?

  5. #5
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    ajoute public devant chaque classe du fichier tester.cs

    Ca devrait le faire en faisant ça

  6. #6
    Membre extrêmement actif Avatar de petitours
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Février 2003
    Messages
    2 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 2 037
    Par défaut
    Bonjour

    Je suis sous VS 2015 community, mais çà y est ça tourne

    De ce que je vois/comprends, en passant par un bindingsource le datagridview affiche les 2 champs qui correspondent au "cycle" contenu dans un élément de List<Phase>.
    Ça j'ai bien pigé maintenant

    Mais du coup comment peut on afficher (dans une autre datagridview ou autrepart) les éléments du List<Param> qui sont également contenus dans l’élément du List<Phase>, au même niveau que le "cycle" ?


    Merci

Discussions similaires

  1. Pattern pour des contraintes entre Objet
    Par fabgamer dans le forum Design Patterns
    Réponses: 7
    Dernier message: 24/09/2010, 12h06
  2. [XL-2003] lien hypertext : chemin absolu pour une copie de celulle entre deux fichier
    Par leprechaun dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 07/07/2009, 14h20
  3. [eZ Publish] Liste de liens des objets articles
    Par yamatoshi dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 7
    Dernier message: 31/07/2008, 18h01
  4. Lien entre 2 objets et insert
    Par speechmill dans le forum Hibernate
    Réponses: 11
    Dernier message: 19/12/2007, 09h47
  5. lien entres deux objets
    Par surfing903 dans le forum Langage
    Réponses: 17
    Dernier message: 15/08/2007, 18h55

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