使WPF Expanders的集合''专门扩展,即一次只扩展一个

Chr*_*don 1 c# data-binding wpf listbox expander

我有一个ListBox包含一组'Expander'项目,我想做的是使IsExpanded每个属性的属性独占.例如,如果我有10个扩展器ListBox,我希望一次只打开一个.

这是我到目前为止:

<Window>
    <Window.Resources>
        <DataTemplate x:Key="NormalTemplate">
            <Expander Margin="0" IsExpanded="True" Header="{Binding Model.Name}" Background="Green">
                <Grid>
                    <StackPanel HorizontalAlignment="Stretch">
                        <TextBlock Text="{Binding Model.Description}" TextWrapping="Wrap" HorizontalAlignment="Stretch" Margin="0"/>
                    </StackPanel>
                </Grid>
            </Expander>
        </DataTemplate>
    </Window.Resources>

    <Grid>
        <ListBox ItemsSource="{Binding Groups}" 
                 ItemTemplate="{DynamicResource NormalTemplate}"
                 />
    </Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)

有没有办法做到这一点?我没有与一个ListBox或者确实是扩展器绑在一起,哎呀 - 如果它需要改变的话我就不会束缚它.

Ken*_*art 7

什么决定了是否Expander扩大了?如果是选择,您可以将IsExpanded属性绑定到以下IsSelected属性ListBoxItem:

<Expander IsExpanded="{Binding IsSelected, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListBoxItem}}}" ...>
Run Code Online (Sandbox Code Playgroud)