【发布时间】:2014-06-03 02:20:12
【问题描述】:
我有一个像这样设置的树视图:
<TreeView ItemsSource="{Binding TreeRoot}" x:Name="HierarchyTreeView">
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}>
<Setter Property="Visibility" Value="{Binding IsVisible, Converter={...}}" />
...
</Style>
</TreeView.ItemContainerStyle>
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Children}">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Name}" ... />
</StackPanel>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
用户可以在树形视图中隐藏项目。但是,当节点下所有项目的可见性都设置为 Collapsed 或 Hidden 时,扩展器仍然存在。
当每个孩子在项目下的可见性设置为隐藏或折叠时,有什么方法可以隐藏扩展器?
【问题讨论】:
-
您可以在扩展器上设置可见性,然后用户将如何扩展它。
-
他们不会扩展它。如果没有一个孩子是可见的,那么扩展将毫无用处。没有子项的扩展器也可能使用户在展开某个项目时却发现没有子项时认为程序以某种方式出现故障。
-
将 Expandar 上的可见性设置为折叠状态。所以一旦他们崩溃,他们就再也回不去了?用户永远不会折叠 TreeView 然后想回来看看孩子。