2017-04-03 7 views
0

エキスパンダーコンテンツ内にアイテムがない場合、すべてのエキスパーダーヘッダーを非表示にすばやく表示する方法があるかどうかはわかります。エキスパンダー内にアイテムがない場合はヘッダーを非表示にします

マイエキスパンダー:

<Expander IsExpanded="True" Loaded="Expander_Loaded" Visibility="{Binding Items[0],Converter={StaticResource collectionVisibilityHeaderConverter}}"> 
    <Expander.Header> 
     <DockPanel HorizontalAlignment="Stretch" > 
      <TextBlock Text="{Binding Path=Name}" FontSize="18"></TextBlock> 
      <Button Style="{StaticResource ButtonStyle}" x:Name="ShowAllButton" Content=" SHOW ALL " HorizontalAlignment="Right" DockPanel.Dock="Right" Padding="15" Margin="0,0,15,0" Click="ShowAllButton_Click"></Button> 
      <Button Style="{StaticResource ButtonStyle}" x:Name="ShowOnlyButton" Content=" SHOW ONLY " HorizontalAlignment="Right" DockPanel.Dock="Right" Padding="15" Margin="0,0,15,0" Click="ShowOnlyButton_Click"></Button> 
     </DockPanel> 
    </Expander.Header> 
    <Expander.Style> 
     <Style TargetType="{x:Type Expander}"> 
      <Setter Property="Background" Value="#ccf2ff"></Setter> 
      <Setter Property="TextElement.FontFamily" Value="Arial Nova"/> 
     </Style> 
    </Expander.Style> 
    <Expander.Content> 
     <ItemsPresenter /> 
    </Expander.Content> 
</Expander> 

私は今、コンバータを使用していて、基本的にはそれが動作しますが、私はもっと簡単な方法があると思います。

+1

を、これは正しいアプローチです。 – macieqqq

+0

商品[0]とは何ですか?いくつかのItemsControlのItem TemplateのExpanderですか? – Mishka

+0

ItemsがIEnumerable以上のものであれば、Countプロパティを持ちます。 Items.Countが0のときにエキスパンダーを非表示にするには、トリガーをスタイルに配置し、Itemsがnullの場合は、可能性がある場合はもう1つを選択します。それが私のやり方ですが、あなたのアプローチはそれなりに完璧です。 –

答えて

0

あなたはExpanderStyleDataTriggerを使用することができます。私の意見では

<Expander IsExpanded="True" Loaded="Expander_Loaded"> 
    <Expander.Header> 
     <DockPanel HorizontalAlignment="Stretch" > 
      <TextBlock Text="{Binding Path=Name}" FontSize="18"></TextBlock> 
      <Button Style="{StaticResource ButtonStyle}" x:Name="ShowAllButton" Content=" SHOW ALL " HorizontalAlignment="Right" DockPanel.Dock="Right" Padding="15" Margin="0,0,15,0" Click="ShowAllButton_Click"></Button> 
      <Button Style="{StaticResource ButtonStyle}" x:Name="ShowOnlyButton" Content=" SHOW ONLY " HorizontalAlignment="Right" DockPanel.Dock="Right" Padding="15" Margin="0,0,15,0" Click="ShowOnlyButton_Click"></Button> 
     </DockPanel> 
    </Expander.Header> 
    <Expander.Style> 
     <Style TargetType="{x:Type Expander}"> 
      <Setter Property="Background" Value="#ccf2ff"></Setter> 
      <Setter Property="TextElement.FontFamily" Value="Arial Nova"/> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding Items.Count}" Value="0"> 
        <Setter Property="Visibility" Value="Collapsed" /> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </Expander.Style> 
    <Expander.Content> 
     <ItemsPresenter /> 
    </Expander.Content> 
</Expander> 
関連する問題