Cómo tabular a través de cuadros de texto en un ListView

Ok Tengo un ListView que tiene 2 GridViewColumns, una que muestra un número y otra que contiene un TextBox. Mi problema es que quiero poder pasar por todos los TextBoxes que tengo en el GridViewColumn. Con la propiedad adjunta KeyboardNavigation.TabNavigation logro casi lo que quiero.
Lo que logro es:
primera pestaña - todo el primer ListViewItem enfocado
segundo TAB - primer TextBox enfocado
third TAB - todo el segundo ListViewItem enfocado
fourth TAB - segundo TextBox enfocado

Lo que quiero es
primera TAB - primer TextBox enfocado
segundo TAB - segundo TextBox enfocado

    <ListView KeyboardNavigation.TabNavigation="Continue" Name="TheLabelListView" >
                            <ListView.ItemContainerStyle >
                                    <EventSetter Event="Selected" Handler="ItemSelected" /></Style>
                            </ListView.ItemContainerStyle>
                            <ListView.View>
                                <GridView x:Name="GridViewSmall"  >
                                    <GridViewColumn  Header="#" Width="20"  DisplayMemberBinding="{Binding SelectorIndexNumber}" />
                                    <GridViewColumn  Header="Selector" Width="175">
                                        <GridViewColumn.CellTemplate>
                                            <DataTemplate>
                                                <TextBox Name="SelectorTextBox"  Text="{Binding SelectorName}"  />                                                    
                                            </DataTemplate>
                                        </GridViewColumn.CellTemplate>
                                    </GridViewColumn>
                                </GridView>
                            </ListView.View>
                        </ListView>

Este código me lo dio H.B. . Se supone que se ejecuta cuando se selecciona un ListViewÍtem y encuentra el TextBox y lo enfoca. De alguna manera, todavía no selecciona el cuadro de texto cada vez, aunque cuando se ejecuta este método, bool TextBoxgotFocus siempre es verdadero.

 private void ItemSelected(object sender, RoutedEventArgs e)
    {
        var item = sender as ListViewItem;
        TextBox h = (FindNamedChild(item, "SelectorTextBox") as TextBox);
        bool TextBoxgotFocus = h.Focus();
    }

    public static object FindNamedChild(DependencyObject container, string name)
    {
        if (container is FrameworkElement)
        {
            if ((container as FrameworkElement).Name == name) return container;
        }
        var ccount = VisualTreeHelper.GetChildrenCount(container);
        for (int i = 0; i < ccount; i++)
        {
            var child = VisualTreeHelper.GetChild(container, i);
            var target = FindNamedChild(child, name);
            if (target != null)
            {
                return target;
            }
        }
        return null;
    }

Respuestas a la pregunta(1)

Su respuesta a la pregunta