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

VB.NET Discussion :

Liste "générique" list(Of ) [Débutant]


Sujet :

VB.NET

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    258
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2011
    Messages : 258
    Points : 126
    Points
    126
    Par défaut Liste "générique" list(Of )
    Bonjour,
    Pour faire des essais, je me suis crée un Form avec un DGV que je voudrais "générique", cad acceptant "un peu n'importe quoi", le tout en lecture seule.

    J'ai donc commencé avec un list(Ofmaclasse)

    dans le Form DGV generique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     Public ListeGenerique As New List(Of maclasse)
     DGVgenerique.DataSource = ListeGenerique
    je l'appelle depuis un autre Form par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     Dim frm As New FormDGVgenerique
     frm.ListeGenerique = MaListeaAfficherdeTypeListOfmaclasse
     frm.ShowDialog()
    cela marche bien pour mes besoins !
    je voudrais maintenant pouvoir afficher d'autre types de list(of AutreClasse)
    J'ai donc remplacé dans le FormDGVgenerique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public ListeGenerique As New List(Of maclasse)
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public ListeGenerique As New List(Of object)
    mais dans le Form appellant il y a maintenant une erreur car list(Of autreclasse) n'est pas une list(Of object)
    J'ai essayé plusieurs cast trouvés sur le net, mais sans résultat

    Quelle est la meilleure solution, sachant que le nbre de ligne et de colonne est limité (une dizaine env), qu'il ne s'agit que d'un affichage pour vérification en cours de développement (donc sans header,..), que les valeurs sont es string ou Integer

    par avance, merci
    Bertrand

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    soit mettre la propriété ListeGenerique as list(of object), soit faire une lui fournir des list(of ce qu'il attend), sachant que ca peut etre une classe abstraite ou une interface
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre chevronné Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Points : 1 961
    Points
    1 961
    Par défaut
    Remplace

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Public ListeGenerique As New List(Of maclasse)
     DGVgenerique.DataSource = ListeGenerique
    Par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Public ListeGenerique As New List(Of Object)
     DGVgenerique.DataSource = CType(ListeGenerique, maclasse)
    EDIT : Arf, grillé par Pol63
    Aider les autres, c'est encore la meilleure façon de s'aider soi-même. Martin Gray

    ToDo : Faire une ToDo List

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Le type List(Of T) n'est pas covariant, donc une List(Of QuelqueChose) n'est pas une List(Of Object). Inutile de faire un cast, ça ne passera pas.

    A mon avis, le plus simple est de déclarer ListeGenerique comme étant de type Object, puisque de toute façon c'est le type de DataSource...

  5. #5
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    258
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2011
    Messages : 258
    Points : 126
    Points
    126
    Par défaut
    Bonjour Pol63
    Merci pour cette réponse instantanée
    J'ai pris la 1ère solution, en remplaçant ma liste(Of maclasse) par une list(Of object) et ça marche impec !
    Cela semble tellement évident .... maintenant !
    merci encore
    Bertrand

  6. #6
    Membre habitué
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    258
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2011
    Messages : 258
    Points : 126
    Points
    126
    Par défaut
    Merci également à Ez3kiel et tomlev !!
    (leur réponse est arrivée pendant que je répondais àPol63 )
    Merci encore
    Bertrand

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 30/10/2009, 11h45
  2. [AJAX] liste liée a une liste liée a une liste
    Par dirty_harry dans le forum AJAX
    Réponses: 2
    Dernier message: 03/07/2009, 11h18

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