Итак, у меня есть дерево, в котором у меня есть список. Я хочу применить к нему фильтр, и все узлы, которые не соответствуют словам на фильтре, рухнули, поэтому они не занимают места.WPF Свертывание узлов в TreeView
Проблема заключается в том, даже если я изложу их разрушился, они по-прежнему принимают минимальное количество пространства ...
<TreeView x:Name="UserTree">
<TreeView.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}"
Color="Transparent" />
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}"
Color="Black" />
<SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}"
Color="Transparent" />
<local:SumConverter x:Key="sumConverter"/>
</TreeView.Resources>
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding UserList}">
<Border x:Name="headerTree" Background="#FFD3D1D1" CornerRadius="3" Padding="2"
Margin="2">
<Grid Width="330" Height="20">
<TextBlock Text="{Binding Name}" Name="txtGroupName" Width="280"
Height="20" FontFamily="Palatino Linotype" Foreground="Black" VerticalAlignment="Center"
AllowDrop="True" Drop="TextBlock_Drop" Padding="5,0,0,0" HorizontalAlignment="Left"
Margin="0,2,0,0" />
<CheckBox x:Name="cbSelector" HorizontalAlignment="Right"
VerticalAlignment="Center" Margin="0,0,5,0" Checked="cbSelector_Checked"
Unchecked="cbSelector_Unchecked" />
</Grid>
</Border>
<HierarchicalDataTemplate.ItemTemplate>
<DataTemplate>
<Grid Width="320" Visibility="{Binding isVisible}">
<CheckBox Margin="16,1,1,1" VerticalAlignment="center"
Checked="ChkUser_Checked" Unchecked="chkUser_Unchecked"
IsChecked="{Binding IsListed}"
PreviewMouseMove="CheckBox_PreviewMouseMove"
PreviewMouseLeftButtonDown="CheckBox_PreviewMouseLeftButtonDown" ToolTipService.ToolTip="
{Binding Section}">
<CheckBox.Content>
<MultiBinding Converter="{StaticResource sumConverter}">
<Binding Path="Name"/>
<Binding Path="Status"/>
</MultiBinding>
</CheckBox.Content>
</CheckBox>
<Image Source="{Binding ImagemStatus}" Width="16" Height="16"
HorizontalAlignment="Left" Margin="0,2,0,0" />
<Button x:Name="btnRemoveFromGroup" Click="btnRemoveFromGroup_Click" HorizontalAlignment="Right" Width="16px" Height="16px"
VerticalAlignment="Top" Style="{StaticResource MyButtonStyle}" Foreground="{x:Null}"
ToolTipService.ToolTip="Remove from group" Content="
{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type
TreeViewItem}, AncestorLevel=2}, Path=DataContext.ObtainGroup}">
<Button.Background>
<ImageBrush ImageSource="Imagens/Grp.png"/>
</Button.Background>
</Button>
</Grid>
</DataTemplate>
</HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="IsExpanded" Value="{Binding IsExpanded}"></Setter>
</Style>
</TreeView.ItemContainerStyle>
</TreeView>
<Style x:Key="MyButtonStyle" TargetType="Button">
<Setter Property="OverridesDefaultStyle" Value="True"/>
<Setter Property="Margin" Value="5"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Border Name="border"
BorderThickness="0"
Padding="4,2"
BorderBrush="DarkGray"
CornerRadius="3"
Background="{TemplateBinding Background}">
<ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="border" Property="BorderBrush" Value="Black" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Свертывание не удалит их из экземпляра (из памяти), вам нужно будет удалить экземпляр этих узлов – Shaharyar
Итак, единственный способ избавиться от пространства - либо переместить их в другой список (например), либо удалить его? – HDD
Перемещение их не удалит их из памяти, вам придется утилизировать – Shaharyar