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

原文地址:https://www.cnblogs.com/puncha/p/3876999.html