在ItemsControl WPF中折叠展开器

时间:2014-09-19 06:05:16

标签: c# wpf xaml

我正在显示ItemsControl中的扩展器项列表,并将项列表绑定到它。 我所遵循的xaml结构是

    <ItemsControl ItemsSource="{Binding}" >            
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <Expander ExpandDirection="Down" Style="{StaticResource ResourceKey=ExpanderItemStyle}" >
                <Expander.Header>
                    <BulletDecorator>
                    //Expander header by default its collapsed 
                    <Label Style="{StaticResource ResourceKey=ChapterHeadStyle}"  Content="{Binding name}"></Label>                                         
                    </BulletDecorator>
                </Expander.Header>
                <StackPanel> // Expander body want to collapse it when some some other items of ItemsControl is expanded 
                </StackPanel>
            </Expander>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

当ItemsControl中的其他一些项目被选中时,我可以自动渲染扩展器内容吗

1 个答案:

答案 0 :(得分:0)

您可以将ItemsControl替换为ListBox IsExpanded Expander属性IsSelected ListBoxItem IsExpanded属性{{1}}。 (见http://social.msdn.microsoft.com/Forums/vstudio/en-US/a2988ae8-e7b8-4a62-a34f-b851aaf13886/windows-presentation-foundation-faq?forum=wpf#expander_list

您还可以将{{1}}绑定到某个viewmodel属性并从那里获取它。通过wpf行为可以实现相同的结果。

回答你的问题:不,没有“自动”方式来折叠其他扩展器。