Affichage treeviewitem comme des lignes de la grille dans wpf

Essentiellement dans le besoin afin de parvenir à quelque chose comme ceci en utilisant le contrôle treeview dans wpf: (random image)

http://blogs.msdn.com/blogfiles/delay/SimpleTreeGridUX.png

Où les nœuds et les nœuds enfants ont les mêmes en-têtes.

J'ai googlé beaucoup, mais mes connaissances en wpf pas bon.

Voici mon nœud parent de la classe:

 public class Parent : PropertyChangedBase
    {
        public string ParentName { get; set; }
        public BindableCollection<Child> Children { get; set; }
    }

Et de l'enfant:

public class Child : PropertyChangedBase
{
    public string ChildName { get; set; }
}

Mon xaml arborescence:

  <TreeView Grid.Row="0" Grid.Column="0" ItemsSource="{Binding Nodes}">
        <TreeView.Resources>
            <HierarchicalDataTemplate DataType="{x:Type projectModels:Parent}" ItemsSource="{Binding Children}">
                <StackPanel>
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="20"></ColumnDefinition>
                            <ColumnDefinition Width="Auto"></ColumnDefinition>
                            <ColumnDefinition></ColumnDefinition>
                        </Grid.ColumnDefinitions>
                        <CheckBox Grid.Column="2"></CheckBox>
                        <TextBlock Grid.Column="1" Text="{Binding ParentName}">
                        </TextBlock>
                    </Grid>
                </StackPanel>
            </HierarchicalDataTemplate>
            <DataTemplate DataType="{x:Type projectModels:Child}">
                <StackPanel Orientation="Horizontal">
                    <TextBlock Text="{Binding ChildName}"></TextBlock>
                </StackPanel>
            </DataTemplate>
        </TreeView.Resources>
    </TreeView>

J'ai essayé d'utiliser Grid mais évidemment il créer des grilles différentes, donc je ne peux relais sur la largeur de la colonne.

J'ai essayé Comment faire gridview un élément enfant d'un treeview en application wpf , mais ils utilisent ListView. Ce n'est pas une option pour moi, comme treeviewitem fonctionnalité de sélection est étroitement couplé avec mon treeview et le code derrière.

Des idées comment cela peut être fait? Merci.

  • A votre <Grid> code du travail, autre qu'un problème avec les largeurs de colonne étant différente dans chaque article?
  • Ouais, ça marche, mais pas dans la façon dont j'en ai besoin pour faire. J'ai besoin commun les en-têtes pour l'arborescence des sous-nœuds. Donc, je peux les redimensionner tous, et les nœuds' a été le même.
InformationsquelleAutor makambi | 2014-07-04