我正在尝试实现一个在每个层次结构底部都有一个页脚部分的treeView,以便用户可以轻松地将项目添加到底部。
像
这样的东西 <TreeView>
<TreeView.Resources>
<HierarchicalDataTemplate DataType="local:MyNestedType"
ItemsSource="{Binding Items}">
<StackPanel>
<Label Content="{Binding NodeName}" />
<!--Nested Items here-->
<Button Content="Add New Item" />
</StackPanel>
</HierarchicalDataTemplate>
</TreeView.Resources>
</TreeView>
我怎样才能做到这一点。
答案 0 :(得分:1)
答案不是很好,但它是可行的。
您必须覆盖ItemContainerStyle
的{{1}},并定义控件模板。
http://msdn.microsoft.com/en-us/library/ms788727.aspx
在该示例中,您将看到TreeView
控件模板具有以下某些XAML:
TreeViewItem
XAML定义子项相对于父项的显示方式 - 在<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition MinWidth="19" Width="Auto"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition/>
</Grid.RowDefinitions>
<ToggleButton x:Name="Expander"
Style="{StaticResource ExpandCollapseToggleStyle}"
IsChecked="{Binding Path=IsExpanded,
RelativeSource={RelativeSource TemplatedParent}}"
ClickMode="Press"/>
<Border Name="Bd"
Grid.Column="1"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
Padding="{TemplateBinding Padding}">
<ContentPresenter x:Name="PART_Header"
ContentSource="Header"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"/>
</Border>
<ItemsPresenter x:Name="ItemsHost"
Grid.Row="1"
Grid.Column="1"
Grid.ColumnSpan="2"/>
</Grid>
下可以插入页脚。