当文本框获取焦点时,ListBoxItem 的选择情况如何处理?

13

我有一个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>

我正在使用一个透明的、只读的、无边框的文本框,而不是 TextBlock,因为我想让用户选择文本进行复制。我应该换一种方式吗?

当用户单击这个文本框时,如何编写代码使 ListBoxItem 也被选中?

谢谢!

1个回答

22

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

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

1
正是我想要的!一旦我弄清楚将其放在listbox的ItemContainerStyle中,一切都很顺利! - David
3
查看完整的 XAML,请访问此链接:https://dev59.com/b3A85IYBdhLWcg3wD_O8#2962961 - iraSenthil

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接