c95*_*mbq 20 wpf visibility listbox
我有一个listtemplate正在使用样式的列表框.样式指定带有数据触发器的边框,根据属性设置要折叠的边框的可见性.这工作正常,但我仍然可以看到列表中折叠的每个项目的非常窄的行.我希望有人可以帮助设置可见性,以便没有可见的痕迹,因为当连续项目折叠时这是非常明显的.
datatemplate指定了一个带有dockpanel的外边框 - 然后有一个与之对接的stackpanels.
任何帮助表示赞赏.
那么这是一个简化的模板:
<DataTemplate x:Key="myTemplate">
<Border BorderThickness="0">
<Border.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding Path=IsActive}" Value="False">
<Setter Property="Border.Visibility" Value="Collapsed" />
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
<DockPanel LastChildFill="True" HorizontalAlignment="Stretch">
<StackPanel DockPanel.Dock="Right" HorizontalAlignment="Right" >
<TextBlock Text="{Binding Path=SeqNo, Converter={StaticResource SeqToTextConv}}"/>
<Label Content="..." />
</StackPanel>
</DockPanel>
</Border>
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)
Col*_*inE 39
您成功地隐藏了项目,但是,ListBox将每个项目包装在ListBoxItem中,这会将诸如选择之类的概念添加到项目中.我怀疑在您的项目被隐藏的情况下,您仍然会看到ListBoxItem.您可以使用ItemContainerStyle隐藏ListBoxItems ...
<ListBox>
<ListBox.ItemContainerStyle>
<Style TargetType="{x:Type ListBoxItem}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsActive}" Value="False">
<Setter Property="Visibility" Value="Collapsed"/>
</DataTrigger>
</Style.Triggers>
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
Run Code Online (Sandbox Code Playgroud)