使WPF扩展器的集合“独占”扩展,即一次只扩展一个

时间:2009-05-22 09:54:16

标签: c# wpf data-binding listbox expander

我有一个包含一组'Expander'项目的ListBox,我想要做的是为每个项目提供IsExpanded属性。例如,如果ListBox中有10个扩展器,我希望一次只打开一个扩展器。

这是我到目前为止所做的:

<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>

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

2 个答案:

答案 0 :(得分:6)

是什么决定Expander是否会扩展?如果是选择,您可以将IsExpanded属性绑定到IsSelected的{​​{1}}属性:

ListBoxItem

答案 1 :(得分:0)

Accordian contro l你可能正在寻找什么