2017-09-08 2 views
0

トグルボタンがオフになっているときに、展開されたエクスパンダーを折りたたみようとしています。 DataTriggersの使用は機能しません。どうすればこれを達成できますか? DataTriggerが機能しないのはなぜですか?外部エキスパンダーが折りたたまれているときに内部エキスパンダーを折りたたむ

ここにコードがあります。

<Window x:Class="WpfApp4.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
     xmlns:local="clr-namespace:WpfApp4" 
     mc:Ignorable="d" 
     Title="MainWindow" Height="350" Width="525"> 
    <Grid> 
     <StackPanel> 
      <ToggleButton Name="TheToggle">Collapse expanders when unchecked</ToggleButton> 
        <Expander Header="Menu 1"> 
         <Expander.Style> 
          <Style TargetType="Expander"> 
           <Style.Triggers> 
            <DataTrigger Binding="{Binding ElementName=TheToggle,Path=IsChecked}" Value="False"> 
             <Setter Property="IsExpanded" Value="False"/> 
            </DataTrigger> 
           </Style.Triggers> 
          </Style> 
         </Expander.Style> 
         <StackPanel> 
          <Button>Menu Item 1</Button> 
          <Button>Menu Item 2</Button> 
          <Button>Menu Item 3</Button> 
          <Button>Menu Item 4</Button> 
         </StackPanel> 
        </Expander> 
        <Expander Header="Menu 2"> 
         <StackPanel> 
          <Button>Menu Item 1</Button> 
          <Button>Menu Item 2</Button> 
          <Button>Menu Item 3</Button> 
          <Button>Menu Item 4</Button> 
         </StackPanel> 
        </Expander> 
      <Expander Header="Menu 3"> 
       <StackPanel> 
        <Button>Menu Item 1</Button> 
        <Button>Menu Item 2</Button> 
        <Button>Menu Item 3</Button> 
        <Button>Menu Item 4</Button> 
       </StackPanel> 
      </Expander> 
     </StackPanel> 
    </Grid> 
</Window> 

答えて

1

私はButtonclick上のすべてのエキスパンダーを拡張/折りたたむためにあなたの変形例:

<Grid> 
     <StackPanel> 
      <ToggleButton Name="TheToggle" Content="Collapse expanders when unchecked"> 

      </ToggleButton> 
      <Expander Header="Menu 1" IsExpanded="{Binding IsChecked, ElementName=TheToggle, Mode=TwoWay}"> 
       <StackPanel> 
        <Button>Menu Item 1</Button> 
        <Button>Menu Item 2</Button> 
        <Button>Menu Item 3</Button> 
        <Button>Menu Item 4</Button> 
       </StackPanel> 
      </Expander> 
      <Expander Header="Menu 2" IsExpanded="{Binding IsChecked, ElementName=TheToggle, Mode=TwoWay}"> 
       <StackPanel> 
        <Button>Menu Item 1</Button> 
        <Button>Menu Item 2</Button> 
        <Button>Menu Item 3</Button> 
        <Button>Menu Item 4</Button> 
       </StackPanel> 
      </Expander> 
      <Expander Header="Menu 3" IsExpanded="{Binding IsChecked, ElementName=TheToggle, Mode=TwoWay}"> 
       <StackPanel> 
        <Button>Menu Item 1</Button> 
        <Button>Menu Item 2</Button> 
        <Button>Menu Item 3</Button> 
        <Button>Menu Item 4</Button> 
       </StackPanel> 
      </Expander> 
     </StackPanel> 
    </Grid> 

は、これが望ましい動作ですか?

関連する問題