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 seusTextBox
o 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?