IsSynchronizedWithCurrentItem 会让 ListBox 默认选中第一项
<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就会默认选中第一项。