Выбор ListBoxItem в фокусе TextBox - PullRequest
12 голосов
/ 27 мая 2009

У меня есть ListBox, показывающий элементы, используя следующий шаблон данных:

<DataTemplate x:Key="PersonTemplate" DataType="{x:Type DAL:ResultItem}" >
  <StackPanel Width="280" >
    <TextBox BorderThickness="0" IsReadOnly="True" Background="Transparent" Text="{Binding FullName1, Mode=OneWay}"/>
    ... 
  </StackPanel>
</DataTemplate>

Я использую прозрачный текстовый блок без полей для чтения, а не текстовый блок, потому что я хочу, чтобы пользователи могли выбирать текст для копирования. Должен ли я сделать это по-другому? Как я могу написать это так, чтобы, когда пользователь нажимает на TextBox, также выбирается ListBoxItem?

Спасибо!

1 Ответ

20 голосов
/ 27 мая 2009

Я обнаружил, что ответ заключается в том, чтобы сделать это с точки зрения ListBoxItem, добавив в свой DataTemplate следующее:

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