2009-05-26 38 views
12

Tôi có một ListBox cho thấy các mặt hàng sử dụng DataTemplate sau:ListBoxItem lựa chọn trên TextBox tập trung

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

Tôi đang sử dụng một cách minh bạch, read-only, TextBox không biên giới như trái ngược với một TextBlock vì tôi muốn người dùng có thể để chọn văn bản để sao chép. Tôi có nên làm điều đó khác đi không? Làm thế nào tôi có thể viết điều này để khi người dùng nhấp vào TextBox, ListBoxItem cũng được chọn?

Cảm ơn!

Trả lời

18

tôi thấy rằng câu trả lời chỉ là để làm điều này từ quan điểm ListBoxItem, thêm dòng sau vào DataTemplate của nó:

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

Chỉ cần những gì tôi đang tìm kiếm! Một khi tôi đã tìm ra được điều đó trong ItemContainerStyle của listbox thì mọi thứ đều tốt đẹp! – David

+3

Đối với XAML đầy đủ, hãy xem http://stackoverflow.com/questions/2960098/set-listboxitem-isselected-when-child-textbox-is-focused/2962961#2962961 này – iraSenthil

Các vấn đề liên quan