0

我正在开发一个 WPF 项目,我有一个TreeViewusing HierarchicalDataTemplates. 我已经能够建立一些不同级别的节点。到目前为止一切进展顺利。

<TreeView Margin="14,14,14,14" Name="treeView" ItemsSource="{Binding Tree}"
                               BorderThickness="0">
                  <TreeView.Resources>
                    <!--
                        First Level
                    -->
                    <HierarchicalDataTemplate DataType="{x:Type vm:FirstLevelViewModel}" 
                                              ItemsSource="{Binding Children}" >
                        <StackPanel Orientation="Horizontal" >
                        <TextBlock Text="{Binding SomeText}" FontSize="14" FontWeight="Bold" Foreground="DarkBlue"  />
                        </StackPanel>                           
                    </HierarchicalDataTemplate>
                    <!--
                        Second Level
                    -->
                    <HierarchicalDataTemplate DataType="{x:Type vm:SecondLevelViewModel}" 
                                              ItemsSource="{Binding Children}" >
                            <CheckBox Name="checkBox" IsChecked="{Binding IsChecked}" IsEnabled="{Binding IsEnabled}">
                            <StackPanel Orientation="Horizontal">
                            <TextBlock Text="{Binding SomeText}" FontSize="14" />
                            </StackPanel>
                        </CheckBox>
                    </HierarchicalDataTemplate>
. . . . 

我的问题是:我需要一些节点不可折叠。

有没有办法做到这一点?我一直在寻找它,但没有运气。

4

1 回答 1

2

默认模板TreeViewItem定义了一个ToggleButton显示和隐藏子项目的模板。您可以根据属性绑定到项目上的某个属性的模板创建自己的模板IsEnabled,这样可以防止它被切换,当然您还应该绑定IsExpanded(也可以在模板之外完成)和这种情况下的值应始终为true

于 2012-08-27T21:03:11.657 回答