WPF: стилизация HierarchicalDataTemplate - PullRequest
0 голосов
/ 09 октября 2011

Вот простой DataTemplate

<Grid.Resources>
<HierarchicalDataTemplate ItemsSource="{Binding Items}" DataType="{x:Type entities:Folder}" ItemContainerStyle="{StaticResource FileComponentItem}">
    <Grid ShowGridLines="False" HorizontalAlignment="Center">
        <TextBlock Grid.Column="0" Text="{Binding Type}" />
    </Grid>
</HierarchicalDataTemplate>
<HierarchicalDataTemplate ...... />
</Grid.Resources>

это применяется к TreeView

<TreeView Grid.Row="1" BorderThickness="0" ItemsSource="{Binding}"  ItemContainerStyle="{StaticResource FlattenedTreeViewItem}"></TreeView>

Обратите внимание, что стиль FileComponentItem применяется к шаблону для объектов типа: Папка

Работает, примите, что стиль применяется только к дочерним элементам этого узла (узла Папка). Это означает, что стиль получат только дочерние узлы папки (независимо от того, какие элементы раскрываются в папке, а сама папка остается без стиля).

Я хотел бы иметь возможность контролировать стиль элементов, к которым применяется шаблон, а не дочерние элементы

Ответы [ 2 ]

1 голос
/ 09 октября 2011

Поскольку вы применили стиль к ItemContainer и, как следует из названия, он будет применен к элементам, которые он содержит, которые в этом случае будут дочерними узлами папки.Таким образом, вам нужно применить этот style on your listbox или любой элемент управления, к которому применяется этот шаблон данных Hierarchichal.

0 голосов
/ 09 октября 2011

Посмотрите на http://blogs.msdn.com/b/mikehillberg/archive/2009/10/30/treeview-and-hierarchicaldatatemplate-step-by-step.aspx

Объяснение и соответствующий образец должны позаботиться о вашем вопросе.

...