如何在分层数据模板上创建页脚部分

时间:2011-04-03 04:00:35

标签: .net wpf xaml

我正在尝试实现一个在每个层次结构底部都有一个页脚部分的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>

我怎样才能做到这一点。

1 个答案:

答案 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> 下可以插入页脚。