0

这是一个简单的数据模板

<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 应用于类型实体的模板:文件夹

它有效,接受的样式仅适用于该节点(文件夹节点)的子节点。意思是,只有 Folder 的子节点才能获得样式(无论在 Folder 下展开什么项目,而 Folder 本身仍然没有样式)。

我希望能够控制应用模板的项目的样式,而不是子项

4

2 回答 2

1

由于您将样式应用于ItemContainer并且顾名思义,它将应用于它包含的项目,在这种情况下将是文件夹的子节点。因此,您需要应用此style on your listbox控件或应用此 Hierarchichal 数据模板的任何控件。

于 2011-10-09T19:15:14.490 回答
-1

看看http://blogs.msdn.com/b/mikehillberg/archive/2009/10/30/treeview-and-hierarchicaldatatemplate-step-by-step.aspx

解释和相应的示例应该解决您的问题。

于 2011-10-09T18:35:53.200 回答