2009-05-26 30 views
12

Tengo un cuadro de lista que muestra los elementos utilizando la siguiente DataTemplate:selección ListBoxItem de enfoque Cuadro de texto

<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> 

estoy usando un sistema transparente, de sólo lectura, Cuadro de texto sin fronteras en lugar de un TextBlock porque quiero que los usuarios puedan para seleccionar el texto para copiar ¿Debo hacerlo de manera diferente? ¿Cómo puedo escribir esto para que cuando el usuario haga clic en el TextBox, también se seleccione ListBoxItem?

Gracias!

Respuesta

18

encontré que la respuesta es sólo para hacer esto desde el punto de vista ListBoxItem, añadiendo lo siguiente a su DataTemplate:

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

Justo lo que estaba buscando! Una vez que me di cuenta de poner eso en el ItemContainerStyle del listbox ¡está todo bien! – David

+3

Para XAML completo, mira esto http://stackoverflow.com/questions/2960098/set-listboxitem-isselected-when-child-textbox-is-focused/2962961#2962961 – iraSenthil

Cuestiones relacionadas