我正在显示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中的其他一些项目被选中时,我可以自动渲染扩展器内容吗
答案 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行为可以实现相同的结果。
回答你的问题:不,没有“自动”方式来折叠其他扩展器。