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 :

Bind de DGV cacher colonnes


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut Bind de DGV cacher colonnes
    Bonjour une question que je me pose souvent

    Je bind un Dgv a une liste via le Datasource
    Imaginons que certains champs des elements de la liste utilisent un accesseur un peu lourd mais que ce champ ne doit pas etre affiché dans le DGV

    La chose triviale a faire ce MonDgv.Columns["CetElement"].Visible=false;

    MAIS est ce que cela va faire que le dgv ne passera pas par l'accesseur de ce champ et le calcul sera evité
    Ou il y a-t-il une autre maniere d'eviter l'accession du champ ?
    Ou bien ce champ sera-il accedé de toute facon ?

  2. #2
    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 : 44
    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
    Par défaut
    Citation Envoyé par olibara Voir le message
    MAIS est ce que cela va faire que le dgv ne passera pas par l'accesseur de ce champ et le calcul sera evité
    Ben c'est facile à vérifier... il suffit de mettre un breakpoint dans l'accesseur et de voir s'il est atteint

    A priori, je dirais que toutes les propriétés bindées à des colonnes sont évaluées, même si la colonne n'est pas affichée... mais faudrait tester pour en avoir le cœur net

  3. #3
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Ben voila

    On aura le coeur .NET a deux !
    Effectivement, (je m'en doutais un peu) toutes les prtopriétes sont accedées

    Mais j'en reviens a la question la plus intéressante :

    A ton avis un bindingsource peut eviter cela ?
    ou bien bontantpis ?

  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 : 44
    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
    Par défaut
    Je ne pense pas qu'un BindingSource y change quoi que ce soit. Par contre, en plus de cacher les colonnes, tu pourrais les "dé-binder" en mettant le DataPropertyName à "" (chaine vide). Dans ce cas je pense que la propriété ne sera plus accédée

  5. #5
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Salut TomLev

    Ta suggestion me semblait bonne

    Mais curieusement c'est pire que tout !
    Du coup la proprieté s'affiche dans le DGV meme si le visible est a false !!

    Je vais rester a jouer avec le visible !

  6. #6
    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 : 44
    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
    Par défaut
    Citation Envoyé par olibara Voir le message
    Mais curieusement c'est pire que tout !
    Du coup la proprieté s'affiche dans le DGV meme si le visible est a false !!


    Mais c'est bizarre ton histoire... J'ai fait le test, et chez moi la propriété n'est pas accédée si la colonne n'est pas visible (contrairement à ce que je pensais). Encore mieux: s'il y a une scrollbar horizontale qui fait que la colonne n'est pas visible, la propriété n'est accédée que quand la colonne devient vraiment visible.

    Donc je sais pas comment tu as fait ton test au départ, mais moi j'ai pas le même résultat...

    EDIT: pour ton dernier problème, je pense que AutoGenerateColumns est à true, si bien qu'il génère automatiquement les colonnes pour les propriétés qui n'en on pas. Mets le à false, ça devrait régler le problème

Discussions similaires

  1. MVVM et Datagrid : definir par binding la visibilité des colonnes
    Par zax-tfh dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 19/05/2009, 15h56
  2. fonction cacher colonne tableau
    Par isa150183 dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 22/07/2008, 09h47
  3. cacher colonne venant d'un query
    Par Mihalis dans le forum Bases de données
    Réponses: 2
    Dernier message: 13/09/2006, 18h50
  4. [CF][C#]Comment cacher colonne du DataGrid sous PPC ?
    Par jogrey dans le forum Windows Mobile
    Réponses: 5
    Dernier message: 15/03/2006, 14h53
  5. [VB.NET] DataSet - DataGrid - Cacher Colonne
    Par Seb.M dans le forum Windows Forms
    Réponses: 4
    Dernier message: 02/03/2005, 12h37

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