TextBox焦点上的ListBoxItem选择

Gus*_*nti 12 wpf textbox listbox selection

我有一个ListBox使用以下DataTemplate显示项目:

<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>
Run Code Online (Sandbox Code Playgroud)

我使用透明,只读,无边框TextBox而不是TextBlock,因为我希望用户能够选择要复制的文本.我应该采用不同的方式吗?我怎么写这个,这样当用户点击TextBox时,ListBoxItem也会被选中?

谢谢!

Gus*_*nti 21

我发现答案只是从ListBoxItem的角度来做,将以下内容添加到其DataTemplate中:

<Style.Triggers>
  <Trigger Property="IsKeyboardFocusWithin" Value="True">
    <Setter Property="IsSelected" Value="True"/>
  </Trigger>
</Style.Triggers>
Run Code Online (Sandbox Code Playgroud)

  • 对于完整的XAML,请查看http://stackoverflow.com/questions/2960098/set-listboxitem-isselected-when-child-textbox-is-focused/2962961#2962961 (3认同)