2011-01-15 9 views
17

Ho una casella di riepilogo in cui il codice articolo utilizza uno stile. Gli stili specificano un bordo con un datatrigger che imposta la visibilità del bordo da comprimere a seconda di una proprietà. Funziona bene, tranne che posso ancora vedere una linea molto stretta per ogni elemento, nella lista, che è compresso. Speravo che qualcuno potesse aiutarti a impostare la visibilità in modo che non ci fossero tracce visibili, dato che questo è del tutto evidente quando elementi consecutivi sono stati compressi.WPF - nascondere gli elementi della casella di riepilogo

Il datatemplate specifica un bordo esterno con un dockpanel all'interno di questo - ci sono poi i pannelli di espansione ancorati a questo.

Qualsiasi aiuto è apprezzato.

Beh questo è un modello semplificato:

<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

puoi pubblicare qualche esempio di XAML che illustra il problema? – BrokenGlass

+0

aggiungendolo al post originale – c95mbq

risposta

34

Stai con successo nascondendo il vostro articolo, tuttavia, il ListBox avvolge ciascuno dei vostri articoli all'interno di un ListBoxItem, questo aggiunge concetti come selezione per il vostro articolo. Sospetto che tu stia ancora vedendo il ListBoxItem nel caso in cui i tuoi articoli siano nascosti. Puoi usare ItemContainerStyle per nascondere 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

Grazie Colin, molto apprezzato! – c95mbq