Como usar IsKeyboardFocusWithin e IsSelected juntos?

Eu tenho um estilo definido para o meuListBoxItems com um gatilho para definir uma cor de fundo quandoIsSelected é verdade:

    <Style x:Key="StepItemStyle" TargetType="{x:Type ListBoxItem}">
        <Setter Property="SnapsToDevicePixels" Value="true"/>
        <Setter Property="OverridesDefaultStyle" Value="true"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="ListBoxItem">
                    <Border Name="Border" Padding="0" SnapsToDevicePixels="true">
                        <ContentPresenter />
                    </Border>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsSelected" Value="True">
                            <Setter TargetName="Border" Property="Background" Value="#40a0f5ff"/>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

Esse estilo mantém o item selecionado mesmo quando oListBox eListBoxItem perde o foco, o que no meu caso é uma necessidade absoluta. O problema é que eu também quero oListBoxItem para ser selecionado quando um de seusTextBoxo filho fica focado. Para conseguir isso, adiciono um gatilho que defineIsSelected verdadeiro quandoIsKeyboardFocusWithin é verdade:

<Trigger Property="IsKeyboardFocusWithin" Value="True">
    <Setter Property="IsSelected" Value="True" />
</Trigger>

Quando adiciono esse gatilho, o item é selecionado quando o foco está em uma criançaTextBox, mas o primeiro comportamento desaparece. Agora, quando clico fora doListBox, o item é desmarcado.

Como posso manter os dois comportamentos?

questionAnswers(3)

yourAnswerToTheQuestion