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 :

Problème listview dans un treeview


Sujet :

Windows Presentation Foundation

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 115
    Points : 123
    Points
    123
    Par défaut Problème listview dans un treeview
    Bonjour à tous,
    J'ai un listview dans un treeview :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    <TreeView x:Name="myTreeView" HorizontalAlignment="Stretch" Grid.Row="0" VerticalAlignment="Stretch">
                <TreeView.Resources>
                    <HierarchicalDataTemplate   
                        DataType="{x:Type ExtendedControl:PackViewModel}"  ItemsSource="{Binding Path=Children}">
                        <StackPanel Orientation="Horizontal">
                            <Image Width="16" Height="16" Margin="3,0" Style="{DynamicResource imgCommercialPack}"/>
                            <TextBlock  Text="{Binding CodeLabel}" />
                        </StackPanel>
                    </HierarchicalDataTemplate>
                    <DataTemplate DataType="{x:Type ExtendedControl:ProViewModel}"  >
                        <ListView ItemsSource="{Binding Children}" >
                            <ListView.View>
                                <GridView >
                                    <GridViewColumn Header="Statut">
                                        <GridViewColumn.CellTemplate>
                                            <DataTemplate>
                                                <TextBlock  Text="{Binding Status}" />
                                                    </DataTemplate>
                                        </GridViewColumn.CellTemplate>
                                    </GridViewColumn>
                                    <GridViewColumn Header="Article">
                                        <GridViewColumn.CellTemplate>
                                            <DataTemplate>
                                                <TextBlock  Text="{Binding Article}" />
                                                    </DataTemplate>
                                        </GridViewColumn.CellTemplate>
                                    </GridViewColumn>
                                </GridView>
                            </ListView.View>
                        </ListView>
                    </DataTemplate>
                </TreeView.Resources>
            </TreeView>
    Chaque ViewModel possède un parent et un Chlidren.
    Le problème est que je n'arrive pas à afficher dans la listview les enfants du ViewModel : ProViewModel.
    Je ne comprends pas pourquoi.
    Pourriez vous m'aider s'il vous plait ?

    Merci

  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
    Points : 3 015
    Points
    3 015
    Par défaut
    Salut,

    Sans vraiment regarder plus que ça dans un premier temps...
    Est-ce que remplacer le DataTemplate (utilisé pour affiché la ListView) par un HierarchicalDataTemplate ne corrigerait pas le problème ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 115
    Points : 123
    Points
    123
    Par défaut
    Non pas du tout, apparemment j'ai un problème de binding avec le listview mais je ne sais pas où donner de la tête. J'ai regardé du coté des Ancestors mais je ne maitrise pas encore parfaitement le wpf donc au niveau syntaxe c'est encore un peu dur.
    Please aidez moi !

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Août 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 115
    Points : 123
    Points
    123
    Par défaut
    Bon bah pour info je n'ai toujours pas réussi à résoudre le problème par contre j'ai remarqué que le binding fonctionne bien en remplaçant ma listview par une combobox.
    Je pense que le problème vient de ListView.View.
    Quelqu'un peut-il m'éclairer ?

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Août 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 115
    Points : 123
    Points
    123
    Par défaut
    Bon re petite info le problème se situe dans cette balise : <GridViewColumn.CellTemplate>
    Dès que j'insére la balise datatemplate avec un TextBlock plus rien même plus de listview.

  6. #6
    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
    Points : 3 015
    Points
    3 015
    Par défaut
    Et si tu mets :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <GridView >
      <GridViewColumn Header="Statut" DisplayMemberBinding="{Binding Status}" />
      <GridViewColumn Header="Article" DisplayMemberBinding="{Binding Article}" />
    </GridView>
    ?

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Août 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 115
    Points : 123
    Points
    123
    Par défaut
    Oui ça fontionne.
    Mais j'aimerai créer des GridViewColumn.CellTemplate pour pouvoir mettre des images, des combos ou des checkbox.
    et dès que j'insére ce code ma listview disparait (bizarre) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <GridViewColumn.CellTemplate>
      <DataTemplate>
         <TextBlock  Text="{Binding Article}" />
      </DataTemplate>
    </GridViewColumn.CellTemplate>

  8. #8
    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
    Points : 3 015
    Points
    3 015
    Par défaut
    Oui bizarre...

    Tu peux aussi essayer de mettre un Converter de test pour voir s'il passe dedans.

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        public class TestConverter : IValueConverter {
          public object Convert(object o, Type type, object parameter,
                                System.Globalization.CultureInfo culture) {
            return o;
          }
     
          public object ConvertBack(object o, Type type, object parameter,
                                    System.Globalization.CultureInfo culture) {
            throw new NotSupportedException();
          }
        }

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        <l:TestConverter x:Key="TestConv"/>
     
    ...
    ...
     
    <GridViewColumn.CellTemplate>
      <DataTemplate>
         <TextBlock  Text="{Binding Path=Article, Converter={StaticResource TestConv}}" />
      </DataTemplate>
    </GridViewColumn.CellTemplate>

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Août 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 115
    Points : 123
    Points
    123
    Par défaut
    Non il ne passe pas dedans
    Je sais pas si ça vient pas de l'imbrication de la listview dans la treeview.

  10. #10
    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
    Points : 3 015
    Points
    3 015
    Par défaut
    Là je ne vois pas trop...
    J'essaierai à l'occasion de voir si j'observe la même chose.

    Tu peux toujours essayer d'utiliser le DataGrid du WPFToolkit voir si le problème persiste
    Peut-être que je rate quelque chose.

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Août 2005
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 115
    Points : 123
    Points
    123
    Par défaut
    Yessss!!!!
    Bon bah j'ai réussi à résoudre mon problème :
    En fait, j'ai dû "déporter" le CellTemplate dans la ressource de mon user control

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     <UserControl.Resources>
            <ResourceDictionary>
                 <DataTemplate  x:Key="cell_Statut">
                    <Label Content="{Binding Status}"/>
                 </DataTemplate>
            </ResourceDictionary>
    </UserControl.Resources>
     
    ...
     
    <GridViewColumn Header="Statut" CellTemplate="{DynamicResource cell_Statut}" />

  12. #12
    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
    Points : 3 015
    Points
    3 015
    Par défaut
    Bien vu

    ps: tu as néanmoins mis le doigt sur une bizarrerie...

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

Discussions similaires

  1. Problème Sélection dans un Treeview
    Par benstile dans le forum VB 6 et antérieur
    Réponses: 10
    Dernier message: 12/01/2010, 17h57
  2. Listview dans un treeview en binding
    Par silberfab dans le forum Windows Presentation Foundation
    Réponses: 1
    Dernier message: 07/04/2009, 17h26
  3. [Struts-Layout] Problème Javascript dans layout:treeview
    Par lili2704 dans le forum Struts 1
    Réponses: 4
    Dernier message: 14/06/2007, 16h40
  4. Problème d'ajout de noeud dans un treeview
    Par kince dans le forum VB.NET
    Réponses: 1
    Dernier message: 31/05/2007, 18h57
  5. Problème d'icone dans un treeview
    Par t0ine dans le forum C++Builder
    Réponses: 1
    Dernier message: 09/03/2006, 16h28

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