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 :

utilisation de liste générique


Sujet :

C#

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Septembre 2015
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Septembre 2015
    Messages : 107
    Points : 23
    Points
    23
    Par défaut utilisation de liste générique
    Bonsoir, comment faire pour centraliser cette partie de code avec l'utilisation d'une liste générique.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     DG.DataSource = null;
                var source = new BindingSource();
                source.DataSource = Lcls.lc;
                DG.DataSource = source;
    voilà mon code source que j'insère et mon problème se localise au fichier MyData.cs
    MyData.cs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    class MyData:clslistes<Object>
        {
     
            public void RemplirDataGridList(DataGridView DG,clslistes<Object> Lcls)
            {
                DG.DataSource = null;
                var source = new BindingSource();
                source.DataSource = Lcls.lc;
                DG.DataSource = source;
            }
        }
    clslistes.cs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    abstract class clslistes<T>
        {
           public static List<T> lc = new List<T>();
           public clslistes()
           {
     
           }
        }
    clsClient.cs
    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
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    class clsClient:clslistes<clsClient>
        {
            private int _NumCl;
     
            public int Numero
            {
                get { return _NumCl; }
                set { _NumCl = value; }
            }
            private string _NomCl;
     
            public string GETSETNomCl
            {
                get { return _NomCl; }
                set { _NomCl = value; }
            }
            private string _telCl;
     
            public string GETSETTelCl
            {
                get { return _telCl; }
                set { _telCl = value; }
            }
            private string _adressCl;
     
            public string GETSETadressCl
            {
                get { return _adressCl; }
                set { _adressCl = value; }
            }
            private string _EmailCl;
     
            public string GETSETEmailCl
            {
                get { return _EmailCl; }
                set { _EmailCl = value; }
            }
            private string _VilleCl;
     
            public string GETSETvilleCl
            {
                get { return _VilleCl; }
                set { _VilleCl = value; }
            }
            private string _paysCl;
     
            public string GETSETpaysCl
            {
                get { return _paysCl; }
                set { _paysCl = value; }
            }
            public clsClient()
            {}
     
            public clsClient(int NumCl, string NomCl, string telCl, string adressCl, string EmailCl, string VilleCl, string paysCl)
            {
     
                this._NumCl = NumCl;
                this._NomCl = NomCl;
                this._adressCl = adressCl;
                this._telCl = telCl;
                this._EmailCl = EmailCl;
                this._VilleCl = VilleCl;
                this._paysCl = paysCl;
     
            }
     
            public bool rechercheClient(int num)
            {
                foreach (clsClient cl in lc)
                {
                    if (cl.Numero == num)
                        return true;
     
                }
                return false;
     
            }
     
            public bool ajoutclient(clsClient cl)
            {
                if (this.rechercheClient(cl.Numero) == false)
                {
                    lc.Add(cl);
                    return true;
                }
     
                return false;
            }
     
            private int rechercheclientposit(int num)
            {
                clsClient cl = new clsClient();
                for (int i = 0; i < lc.Count; i++)
                {
                    cl = (clsClient)lc[i];
                    if (cl.Numero == num)
                    {
                        return i;
     
                    }
                }
                return -1;
     
            }
     
     
     
            public bool modifierclient(int numcl,clsClient Ncli)
            {
                if (this.rechercheclientposit(numcl) == -1)
                    return false;
                else
                {
                    lc[rechercheclientposit(numcl)] = Ncli;
                    return true;
     
                }
     
     
            }
     
            public bool supprimerClient(int num)
            {
                if (this.rechercheclientposit(num) == -1)
                    return false;
                else
                {
                    lc.RemoveAt(rechercheclientposit(num));
                    return true;
     
                }
     
            }
        }
    sachant que l'erreur se localise exactement dans ce ligne de fichier MyData.cs:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    source.DataSource = Lcls.lc;

  2. #2
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 761
    Points : 10 543
    Points
    10 543
    Billets dans le blog
    21
    Par défaut
    Bonjour,

    c'est tout à fait normal que vous ayez une erreur (au passage, il serait bon de préciser laquelle ! Généralement, l'erreur donne l'esquisse de la solution).

    Ici, le problème vient du fait qu'il n'est pas possible de mettre n'importe quoi en tant que DataSource d'une DataGridView. Il faut un objet implémentant une des interfaces suivantes :
    • IList
    • IListSource
    • IBindingList
    • IBindingListView


    Le plus simple dans votre cas serait de faire en sorte que la classe clslistes implémente IList
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

Discussions similaires

  1. Comment utiliser les listes génériques ?
    Par nicoletflo dans le forum C#
    Réponses: 8
    Dernier message: 09/04/2008, 14h34
  2. Utilisation des liste liées (ajax) avec du perl
    Par Jim_Nastiq dans le forum Web
    Réponses: 1
    Dernier message: 12/07/2006, 12h07
  3. Réponses: 13
    Dernier message: 10/03/2006, 01h13
  4. Utilisation des liste à choix multiples
    Par mic79 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 04/07/2005, 11h40
  5. Réponses: 16
    Dernier message: 07/04/2005, 11h36

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