1

我有一个包含一组“扩展器”项目的列表框,我想做的是使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>

有没有办法做到这一点?我与ListBox扩展器无关,见鬼 - 如果需要更改,我不会与任何扩展器绑定。

4

2 回答 2

7

是什么决定了an是否Expander被扩展?如果是选择,您可以将属性绑定IsExpanded到的IsSelected属性ListBoxItem

<Expander IsExpanded="{Binding IsSelected, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListBoxItem}}}" ...>
于 2009-05-22T10:03:46.837 回答
0

这款Accordian 控件可能是您想要的

于 2009-05-22T11:14:21.297 回答