<Expander HorizontalContentAlignment="Stretch"
ExpandDirection="Down"
Expanded="Expander_Expanded"
Header="{Binding ElementName=PART_HINTS,
Path=SelectedItem.Name,
IsAsync=False}"
IsExpanded="{Bi nding Path=IsExpanded,
Mode=TwoWay}">
<Expander.Content>
<ListBox x:Name="PART_HINTS" IsSynchronizedWithCurrentItem="True">
<ListBox.ItemsSource>
<PriorityBinding>
<Binding Path="HintsSlow" IsAsync="True" />
<Binding Path="HintsFast" IsAsync="False" />
</PriorityBinding>
</ListBox.ItemsSource>
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Name}" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
假如把IsSynchronizedWithCurrentItem设置成False,那么Expander默认就不会有Header,除非你手动选中ListBox中的某一个Item,但是一旦设置成true,ListBox就会默认选中第一项。
本文探讨了WPF中ListBox控件与Expander结合使用时,IsSynchronizedWithCurrentItem属性的影响。当该属性设置为True时,ListBox将默认选中第一个元素,并将其作为Expander的Header;若设为False,则需要手动选择ListBox项才能显示Header。

被折叠的 条评论
为什么被折叠?



