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 :

DataGridView DataSource et Linq


Sujet :

C#

  1. #1
    Membre éclairé Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 612
    Points : 685
    Points
    685
    Par défaut DataGridView DataSource et Linq
    Bonjour,
    Voici le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
          var serveurs = (from srv in entities.T_Serveur
                          select new { ID = srv.ID, BinDir = srv.BinDir, Name = srv.Name }).ToList();
          dgv.DataSource = serveurs;
    Jusque là aucun souci.
    Pour une raison quelconque, je tiens à avoir un objet qui correspond à un item de la liste serveurs, soit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      public class Serveur
      {
        public int ID;
        public string BinDir;
        public string Name;
      }
    Si je modifie ma requête linq de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
          var serveurs = (from srv in entities.T_Serveur
                          select new Serveur { ID = srv.ID, BinDir = srv.BinDir, Name = srv.Name }).ToList();
          dgv.DataSource = serveurs;
    Mon DataGridView ne m'affiche plus rien.
    J'ai pourtant bien mes items dans serveurs.

    Quelqu'un saurait-il me dire pourquoi ??

  2. #2
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    bonjour,

    je pense que tu doit code les set et les get .

    j'ai pas teste ça mais c'est une simple proposition !!!!


    je tient a savoir le resultat .

    Merci

  3. #3
    Membre éclairé Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 612
    Points : 685
    Points
    685
    Par défaut
    Tout juste Auguste !!!
    Merci et bonne journée !!

  4. #4
    Membre éclairé Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 612
    Points : 685
    Points
    685
    Par défaut
    Juste encore une chose...
    Maintenant, j'ajoute un serveur à ma liste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var serveurs = (from srv in entities.T_Serveur
                          select new Serveur { ID = srv.ID, BinDir = srv.BinDir, Name = srv.Name }).ToList();
    
          dgv.DataSource = serveurs;
          serveurs.Add(new Serveur { ID = 3, BinDir = "D:\\temp", Name = "Serveur3" });
    Comment je fais pour mettre à jour mon DataGridView ?

  5. #5
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2010
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2010
    Messages : 148
    Points : 291
    Points
    291
    Par défaut
    Ce bout de code est placé dans le page Load ?

  6. #6
    Membre éclairé Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 612
    Points : 685
    Points
    685
    Par défaut
    Non, n'importe où !
    En fait, l'ajout d'un nouveau serveur se fait ailleurs. Évidemment pas juste en dessous de l'initialisation du dgv. Sinon je l'aurais fais avant d'affecter le DataSource du dgv...

  7. #7
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    Citation Envoyé par ppphil Voir le message
    Comment je fais pour mettre à jour mon DataGridView ?
    En réaffectant la datasource de ta grille à chaque modif, ou en utilisant une collection qui implémente IBindingList (cf la doc), comme par exemple BindingList<T>, à la place de List.
    ಠ_ಠ

  8. #8
    Membre éclairé Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 612
    Points : 685
    Points
    685
    Par défaut
    En réaffectant la datasource de ta grille à chaque modif
    Ouaip, ça joue sauf qu'il faut faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dgv.DataSource = null;
    dgv.DataSource = serveurs;
    ou en utilisant une collection qui implémente IBindingList (cf la doc), comme par exemple BindingList<T>, à la place de List.
    Sauf que je ne peux pas affecter le résultat d'une requête Linq .ToList() à un BindingList<T>.....

  9. #9
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    Citation Envoyé par ppphil Voir le message
    Sauf que je ne peux pas affecter le résultat d'une requête Linq .ToList() à un BindingList<T>.....
    BindingList a un constructeur qui prend une liste en paramètre, ça devrait suffire.

    Et Linq n'a rien à voir là dedans; Tout ce qui compte, c'est que tu te retrouves avec une List<T>, la façon de l'obtenir importe peu pour ton problème.
    ಠ_ಠ

  10. #10
    Membre éclairé Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 612
    Points : 685
    Points
    685
    Par défaut
    Yep !
    J'te remercie beaucoup !!
    Donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    BindingList<Serveur> list;
    list = new BindingList<Serveur>((from srv in entities.T_Serveur
                                           select new Serveur { ID = srv.ID, 
                                                                BinDir = srv.BinDir, 
                                                                Name = srv.Name }).ToList());
     
    dgv.DataSource = list;
     
    list.Add(new Serveur { ID = 0, BinDir = "D:\\temp", Name = "Serveur3" });
    Bonne journée !

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

Discussions similaires

  1. [Débutant] DataGridView.DataSource.Sort avec chiffres et texte
    Par IL-MAFIOSO dans le forum VB.NET
    Réponses: 12
    Dernier message: 17/11/2016, 10h54
  2. Problème de conversion Datagridview.datasource
    Par padrinho dans le forum VB.NET
    Réponses: 4
    Dernier message: 06/08/2009, 19h22
  3. DataGridView DataSource et BindingList
    Par ludogoal dans le forum Windows Forms
    Réponses: 16
    Dernier message: 06/07/2009, 09h34
  4. Réponses: 7
    Dernier message: 03/12/2008, 16h49
  5. Réponses: 8
    Dernier message: 23/08/2006, 10h59

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