2011-01-15 8 views
17

Tengo un cuadro de lista donde el elemento plantilla está utilizando un estilo. Los estilos especifican un borde con un activador de datos que establece la visibilidad del borde para colapsar dependiendo de una propiedad. Esto funciona bien, excepto que todavía puedo ver una línea muy estrecha para cada elemento, en la lista, que está contraída. Esperaba que alguien pudiera ayudarme a configurar la visibilidad para que no haya rastros visibles, ya que esto es bastante evidente cuando se han colapsado elementos consecutivos.WPF - ocultar elementos del cuadro de lista

La plantilla de datos especifica un borde exterior con un panel de puertos dentro de esto - entonces hay paneles de conexiones acoplados a esto.

Cualquier ayuda es apreciada.

Bueno, esto es una plantilla simplificada:

<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> 
+0

¿Puede publicar algún ejemplo de XAML que ilustre el problema? – BrokenGlass

+0

, agregándolo a la publicación original – c95mbq

Respuesta

34

Usted está ocultando con éxito su artículo, sin embargo, el cuadro de lista envuelve cada uno de sus elementos dentro de un ListBoxItem, esto añade conceptos tales como la selección de su artículo. Sospecho que todavía estás viendo el ListBoxItem en el caso donde tus artículos están ocultos. Puede utilizar ItemContainerStyle para ocultar 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> 
+0

Gracias Colin, muy apreciado! – c95mbq

Cuestiones relacionadas