C# HierarchycalDataTemplate树视图项

C# HierarchycalDataTemplate树视图项,c#,treeview,binding,C#,Treeview,Binding,我有以下xaml: <TreeView x:Name="tvCategoryList" Grid.Column="0" Padding="0" ItemsSource="{Binding CategoriesList}"> <TreeView.ItemTemplate> <HierarchicalDataTemplate ItemsSource="{Binding Items}"> <TextBlock Text="{Bindin

我有以下xaml:

<TreeView x:Name="tvCategoryList" Grid.Column="0" Padding="0" ItemsSource="{Binding CategoriesList}">
  <TreeView.ItemTemplate>
    <HierarchicalDataTemplate ItemsSource="{Binding Items}">
      <TextBlock Text="{Binding ItemName}"/>
    </HierarchicalDataTemplate>
  </TreeView.ItemTemplate>
</TreeView>


在上面的代码中,我绑定了ObservableCollection CategoriesList,其中CustomTreeItem类具有可见性属性。如何更改上述代码以绑定可见性属性,使其在每次(设置为visibile或折叠)选中/取消选中某个项目时都得到更新?

您可以使用样式设置器来操作该项目的可见性

您使用的绑定可深入到TreeViewItem的选定属性:

<HierarchicalDataTemplate ItemsSource="{Binding Items}">
  <TextBlock Text="{Binding ItemName}">
     <TextBlock.Style>
        <Style>
           <Style.Triggers>
              <DataTrigger Binding="{Binding Path=IsSelected, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type TreeViewItem}}}" 
                  Value="True">
                  <Setter Property="TextBlock.Visibility" Value="false" />
              </DataTrigger>
           </Style.Triggers>
        </Style>
     </TextBlock.Style>
  </TextBlock>
</HierarchicalDataTemplate>


但这并不会降低它的反直观性。

您希望它如何工作?更改选择时隐藏树中的项目似乎违反直觉。