2011-01-15 18 views
17

itemtemplateがスタイルを使用しているリストボックスがあります。スタイルは、プロパティに応じて枠線の表示を折りたたむように設定するデータトリガとの境界を指定します。これは、リスト内で折りたたまれている各項目に対して、非常に細い線が表示されていることを除いて、正常に動作します。私は誰かが目に見える痕跡がないように可視性を設定する方法を手伝ってくれることを期待していました。これは、連続したアイテムが崩壊したときにはっきりしているからです。WPF - リストボックスアイテムを隠す

datatemplateは、この内部のドックパネルを持つ外側の境界線を指定します。これにスタックパネルがドッキングされます。

何か助けていただければ幸いです。

まあ、これは単純化されたテンプレートです:あなたが正常にあなたの項目を隠している

<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

問題を説明するサンプルXAMLを投稿できますか? – BrokenGlass

+0

元の投稿に追加する – c95mbq

答えて

34

が、しかし、リストボックスは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> 
+0

ありがとうございました。 – c95mbq

関連する問題