locked
DataGrid Expand/Collapse Lignes et types de cellule differentes dans une meme colonne? RRS feed

  • Question

  • Bonjour, je souhaiterai créer un DataGrid sur une liste d'attribut, l'idée étant d'avoir le nom de l’attribut et, en fonction de ton type, d'avoir ds la deuxième colonne un champ de texte, des radiobutton, ect...

    Est-ce possible de créer des éléments de type différent d'une ligne a l'autre et ce dans une même colonne de ma datagrid?

     

    Ma deuxieme question concerne la possibilité d'extand/collapse les ligne de mon datagrid. Je voudrais savoir si j'ai la possibilité pour une ligne de créer une sorte de bouton + qui me permetterai d'afficher de nouvelle lignes?

    J'aimerais avoir quelque chose qui ressemble à ça :

    jeudi 19 janvier 2012 07:37

Réponses

  • Bonjour,

    Je perçois mal le besoin global et cela va forcément poser des problèmes (pas de tri possible sur cette colonne par exemple). Avant d'essayer quel est le cas de figure où on utilise des données si hétérogènes ? N'y aurait il pas une alternative plus simple ?

    Est ce que l'on ne voudrait pas qq chose plutôt comme une "PropertyGrid" (http://slg30.codeplex.com/) qui permet d'éditer les propriétés d'un objet plutôt qu'une grille qui liste les données d'une liste d'objets ?

     


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".
    • Proposé comme réponse carl44 jeudi 19 janvier 2012 17:17
    • Marqué comme réponse Ciprian Duduiala mardi 24 janvier 2012 09:16
    jeudi 19 janvier 2012 13:04
  • Donc j'ai récupéré la version SL4 et extrait les fichiers. Dans mon projet, j'ajoute une référence sur SL40PropertyGrid.dll.

    J'ajoute xmlns:slg="clr-namespace:SL40PropertyGrid;assembly=SL40PropertyGrid" dans la balise du UserControl ou de la page ce qui permettra de référencer ce contrôle dans le XAML.

    Donc dans le XAML qq chose comme <slg:PropertyGrid Name="pg"/> et j'ai testé avec :

    pg.SelectedObject = new Node() { a = "Test", b = 1.2f, c = 3.14, d = false };
    

    dans le code behind...

     

     

     

     

     

     

     


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".
    • Marqué comme réponse Micr000 vendredi 20 janvier 2012 23:01
    • Non marqué comme réponse Micr000 lundi 23 janvier 2012 22:23
    • Proposé comme réponse Ciprian Duduiala mardi 24 janvier 2012 09:13
    • Marqué comme réponse Ciprian Duduiala mardi 24 janvier 2012 09:14
    vendredi 20 janvier 2012 18:24

Toutes les réponses

  • Bonjour,

    Tu peux personnaliser les cellules de la datagrid en mettant les controls que tu désires en utilisant des DataTemplate.

    Et aussi vu que tu veux gérer des event (click charegement de certaines lignes) c'est mieux que tu gère de façon dynamique (code behind C#).

    Bon courage

     


    So B
    • Proposé comme réponse carl44 jeudi 19 janvier 2012 17:17
    jeudi 19 janvier 2012 10:39
  • J'ai plus ou moins gérer l'extend/collapse, par contre, j'ai l'impression que mettre ds la même colonne, un coup un bouton, un coup un radiobutton, un coup un champ de texte éditable, etc... est impossible

    Le type doit être le même pour toute la colonne, non? :$
    jeudi 19 janvier 2012 12:16
  • Bonjour,

    Je perçois mal le besoin global et cela va forcément poser des problèmes (pas de tri possible sur cette colonne par exemple). Avant d'essayer quel est le cas de figure où on utilise des données si hétérogènes ? N'y aurait il pas une alternative plus simple ?

    Est ce que l'on ne voudrait pas qq chose plutôt comme une "PropertyGrid" (http://slg30.codeplex.com/) qui permet d'éditer les propriétés d'un objet plutôt qu'une grille qui liste les données d'une liste d'objets ?

     


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".
    • Proposé comme réponse carl44 jeudi 19 janvier 2012 17:17
    • Marqué comme réponse Ciprian Duduiala mardi 24 janvier 2012 09:16
    jeudi 19 janvier 2012 13:04
  • Bonjour,

    En effet, la PropertyGrid semble mieux adaptée mais j'avoue que j'ai beau chercher, j'ai un peu de mal a comprendre comment l'utiliser.

    Merci de m'en avoir parlé :)

    vendredi 20 janvier 2012 12:19
  • Je ne trouve toujours pas, je ne comprends pas comment utiliser une PropertyGrid...

    xmlns:propertyGrid="", je ne sais pas quoi mettre ici...

    Pourriez vous juste me dire comment faire pour avoir accès a une PropertyGrid, je vois a peu près comment utiliser ma PropertyGrid grâce a certains tutoriaux mais je ne sais pas ce que je dois inclure pour pouvoir l'utiliser...

    Merci d'avance :$

    vendredi 20 janvier 2012 13:45
  • Et pour expliquer mon besoin, je travail actuellement sur des diagrammes, je possède des groupes qui ont plusieurs nœuds ayant des attributs.

    Je voudrais donc, en cliquant sur un groupe, avoir un listing de ces nœuds avec la possibilité de modifier leurs attributs.

    vendredi 20 janvier 2012 15:29
  • Donc j'ai récupéré la version SL4 et extrait les fichiers. Dans mon projet, j'ajoute une référence sur SL40PropertyGrid.dll.

    J'ajoute xmlns:slg="clr-namespace:SL40PropertyGrid;assembly=SL40PropertyGrid" dans la balise du UserControl ou de la page ce qui permettra de référencer ce contrôle dans le XAML.

    Donc dans le XAML qq chose comme <slg:PropertyGrid Name="pg"/> et j'ai testé avec :

    pg.SelectedObject = new Node() { a = "Test", b = 1.2f, c = 3.14, d = false };
    

    dans le code behind...

     

     

     

     

     

     

     


    Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".
    • Marqué comme réponse Micr000 vendredi 20 janvier 2012 23:01
    • Non marqué comme réponse Micr000 lundi 23 janvier 2012 22:23
    • Proposé comme réponse Ciprian Duduiala mardi 24 janvier 2012 09:13
    • Marqué comme réponse Ciprian Duduiala mardi 24 janvier 2012 09:14
    vendredi 20 janvier 2012 18:24
  • Merci beaucoup, je peux enfin essayé de faire ce que je voulais :)

    Encore merci :)
    vendredi 20 janvier 2012 23:01
  • Savez vous s'il est possible de definir les attributs que notre propertygrid affiche? Actuellement tout mes attributs sont afficher par default et je souhaiterais eviter cela...

    J'ai egalement un soucis de casting... Je creer ma propertygrid a partir de mes noeuds mais au moment ou je veux les reutiliser, j'ai un probleme de cast qui apparait... Savez vous comment je pourrais empecher ma propertygrid d'utiliser certains attributs?  :$

    lundi 23 janvier 2012 22:24
  • Bonjour,

     

    Vu que votre question initiale a été répondue (vous l’avez confirmé déjà) j’ai marqué les réponses de Patrice. Si vous avez une question nouvelle vous pouvez continuer la discussion (mais sans démarquer les réponses) ou vous pouvez ouvrir une nouvelle question sur nos forums (peut-être faire référence au thread initial s’il est relevant pour votre question). Je vous recommande la deuxième variante pour éviter les discussions longues et difficiles à suivre.

     

    Merci de votre compréhension et collaboration.

     

    Cordialement,

     

    Cipri


    Suivez MSDN sur Twitter   Suivez MSDN sur Facebook


    Ciprian DUDUIALA, MSFT  
    •Nous vous prions de considérer que dans le cadre de ce forum on n’offre pas de support technique et aucune garantie de la part de Microsoft ne peut être offerte.

    mardi 24 janvier 2012 09:21