我正在开发一个WPF项目,我使用TreeView
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>
. . . .
我的问题是:我需要一些节点不可折叠。
有没有办法实现这一目标?我一直在寻找它没有运气。
答案 0 :(得分:2)
TreeViewItem
的{{3}}定义了显示和隐藏子项的ToggleButton
。您可以基于IsEnabled
属性绑定到项目上某个属性的模板来创建自己的模板,以便可以防止它被切换,当然您也应该绑定IsExpanded
(也可以在模板外部完成),在这种情况下,值应始终为true
。