Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Expand/Collapse all expanders

Tags:

wpf

xaml

I have a list of expanders which I want to control its expanded state(IsExpanded) with global toggle button which should toggle between expanded/collapsed state.

The solution which I have got so far does that by binding the expander's IsExpanded state to the togglebutton's IsChecked state. This works as long as I dont manually dont toggle the expanders. Once I do that those particular expanders dont respect the binding (toggle button's IsChecked state).

Any idea why? and is there a clean solution in XAML for this?

<Page
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Grid>  
  <StackPanel>
    <ToggleButton Name="ExpandAll">Toggle</ToggleButton>  
    <Expander IsExpanded="{Binding ElementName=ExpandAll,Path=IsChecked, Mode=OneWay}">
      Hai
    </Expander>
    <Expander IsExpanded="{Binding ElementName=ExpandAll,Path=IsChecked, Mode=OneWay}">
      Hello
    </Expander>
    <Expander IsExpanded="{Binding ElementName=ExpandAll,Path=IsChecked, Mode=OneWay}">
      Weird
    </Expander>
    </StackPanel>
  </Grid>
</Page>
like image 309
Pradeep Avatar asked Jan 25 '26 07:01

Pradeep


1 Answers

I know that this post is very old. Just posting this for anyone else who comes across. The below code worked for me.

<Expander IsExpanded="{Binding ElementName=ExpandAll, Path=IsChecked, UpdateSourceTrigger=Explicit}">
</Expander>

This works when the expanders are generated dynamically, for example inside a DataGrid.RowDetailsTemplate.

like image 65
Simon Avatar answered Jan 27 '26 01:01

Simon



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!