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

Windows Presentation Foundation Discussion :

DataGrid et Choix des colonnes


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 143
    Par défaut DataGrid et Choix des colonnes
    Bonjour,
    après quelques recherches sur le DataGrid WPF et voulant utiliser une CollectionViewSource afin de mettre en place facilement une mécanique de regroupement, voici le code de mon Grid:
    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
     
    <ObjectDataProvider x:Key="odp"/>
     
            <CollectionViewSource x:Key="cvs" Source="{Binding Source={StaticResource odp}}">
                <CollectionViewSource.GroupDescriptions>
                    <PropertyGroupDescription PropertyName="Group"/>
                </CollectionViewSource.GroupDescriptions>
            </CollectionViewSource>
    <MS:DataGrid x:Name="dg" Background="White"
                                 CanUserSortColumns="True" HorizontalScrollBarVisibility="Auto"
                                 AutoGenerateColumns="True" AlternationCount="2" 
                                 ItemsSource="{Binding Source={StaticResource cvs}}"
                                 BorderThickness="0" SelectionMode="Single"
                                 SelectionUnit="FullRow" GridLinesVisibility="All"
                                 VerticalGridLinesBrush="DarkGray">
    Là j'ai bien mon Grid qui avec toutes les propriétés de mon entité de base chargées en tant que colonnes.
    Ce que j'aimerais, c'est de pouvoir spécifier les colonnes que je souhaite réellement voir mais lorsque j'essaye de le faire en passant AutoGenerateColumns à False et en ajoutant ce genre de code pour chaque colonne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <MS:DataGridTextColumn DataFieldBinding="{Binding Path=Name}" Header="Nom" />
    Mais là j'ai une erreur au lancement qui dit : La collection Items doit être vide pour pouvoir utiliser ItemsSource
    Comment dois-je procéder pour que cela fonctionne?
    Merci d'avance pour votre aide.

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Par défaut
    Salut,

    Tu dois essayer de modifier ItemsSource alors que tu as ajouté tes items via Items.Add(...).

    Une solution : utilises ItemsSource du début à la fin .

    Tu donnes donc ta collection à ItemsSource et lorsque tu veux faire des modifs (ajout, modif, ...) travaille sur ta collection.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 143
    Par défaut
    Salut,
    ma collection est une CollectionViewSource qui a pour source un ObjectDataProvider qui lui même a pour ObjectInstance un ObservableCollection d'objets de type mon entité et ce que je voudrais définir, ce sont les propriétés de mon entité que je souhaite afficher dans le grid et je ne vois pas comment faire.
    J'ai tenter de définir un DataContext sur le grid afin de m'en servir pour le binding à la définition de mes colonnes dans le xaml mais ça ne fonctionne pas...

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 143
    Par défaut
    J'ai modifié mon code de manière à ne plus avoir besoin du DataObjectProvider, maintenant j'ai une ObservableCollection<MonEntité> qui est la source de ma CollectionViewSource. Ensuite je définie cette CollectionViewSource comme DataContext de mon grid et en mettant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ItemsSource="{Binding}"
    à la déclaration de mon grid. Maintenant cela marche parfaitement, j'affiche bien les colonnes que je souhaite dans mon grid.
    Maintenant j'ai une question qui porte plus sur l'organisation:

    Dans mon cas, l'utilisateur décidera des colonnes qu'il souhaite afficher, que vaut-il mieux faire? Binder toutes les données sur des colonnes et jouer sur le visible ou plutôt jouer sur l'ObservableCollection ou la CollectionViewSource, mais dans ce cas j'aurais certainement besoin d'un poil d'aide pour m'en sortir.

    Merci à tous!!!

  5. #5
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Citation Envoyé par ludogoal Voir le message
    Dans mon cas, l'utilisateur décideras des colonnes qu'il souhaite afficher, que vaut-il mieux faire? Binder toutes les données sur des colonnes et jouer sur le visible ou plutôt jouer sur l'ObservableCollection ou la CollectionViewSource, mais dans ce cas j'aurais certainement besoin d'un poil d'aide pour m'en sortir.
    J'opterais pour la 1ère solution: le changement de la visibilité.

Discussions similaires

  1. [XL-2010] Listview / double clique pour ouverture usf / et / choix des colonnes à afficher
    Par GADENSEB dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 25/08/2014, 09h38
  2. Réponses: 4
    Dernier message: 23/06/2014, 10h48
  3. [Dojo] Choix des colonnes a afficher avec enregistrement du choix dans une dataGrid
    Par devkaty dans le forum Bibliothèques & Frameworks
    Réponses: 9
    Dernier message: 13/07/2009, 13h34
  4. Datagrid et gestion des colonnes
    Par danacool dans le forum C#
    Réponses: 3
    Dernier message: 17/06/2009, 15h20
  5. Datagrid et titre des colonnes.
    Par jeromechezgdf dans le forum C#
    Réponses: 2
    Dernier message: 25/06/2007, 10h08

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