13

我有一个使用以下 DataTemplate 显示项目的 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 而不是 TextBlock,因为我希望用户能够选择要复制的文本。我应该采取不同的做法吗?我怎样才能这样写,以便当用户单击 TextBox 时, ListBoxItem 也会被选中?

谢谢!

4

1 回答 1

22

我发现答案只是从 ListBoxItem 的角度来执行此操作,将以下内容添加到其 DataTemplate:

<Style.Triggers>
  <Trigger Property="IsKeyboardFocusWithin" Value="True">
    <Setter Property="IsSelected" Value="True"/>
  </Trigger>
</Style.Triggers>
于 2009-05-26T23:39:24.990 回答