I have a 2-level TreeView. Level-2 TreeViewItems contain TextBox controls via a data template.
What I want: if a TextBox control gets focus, the respective TreeViewItem is selected. I did some research and found this:
<Style TargetType="ListViewItem">
<Style.Triggers>
<Trigger Property="IsKeyboardFocusWithin" Value="true">
<Setter Property="IsSelected" Value="true" />
</Trigger>
</Style.Triggers>
This almost works perfectly if I replace ListViewItem by TreeViewItem.
But: The first child item always selects its parent item instead of itself. (The other child items work as expected).
So it's like
<TreeView>
<TreeViewItem>
<TreeViewItem> <-- this doesn't work
<TreeViewItem> <-- this works
</TreeViewItem>
<TreeViewItem>
<TreeViewItem> <-- this doesn't work
<TreeViewItem> <-- this works
<TreeViewItem> <-- this works
</TreeViewItem>
<TreeViewItem>
<TreeViewItem> <-- this doesn't work
<TreeViewItem> <-- this works
<TreeViewItem> <-- this works
</TreeViewItem>
...
</TreeView>
Any ideas what I am doing wrong or how to solve this?