Establecer el enfoque en un control dentro de una plantilla de control en WPF

En una aplicación en la que estoy trabajando, tenemos un montón de controles personalizados con sus Plantillas de Control definidas en Generic.xaml.

Por ejemplo, nuestro cuadro de texto personalizado sería similar a esto:

<Style TargetType="{x:Type controls:FieldTextBox}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type controls:FieldTextBox}">
                <Border BorderThickness="0" Margin="5">
                    <StackPanel ToolTip="{Binding Path=Field.HintText, RelativeSource={RelativeSource TemplatedParent}}">
                        <TextBlock Text="{Binding Path=Field.FieldLabel, RelativeSource={RelativeSource TemplatedParent}}" 
                                   HorizontalAlignment="Left" 
                                   />
                        <TextBox Width="{Binding Path=Field.DisplayWidth, RelativeSource={RelativeSource TemplatedParent}}" 
                                 HorizontalAlignment="Left" 
                                 Text="{Binding Path=Field.Data.CurrentValue, RelativeSource={RelativeSource TemplatedParent}}" 
                                 IsEnabled="{Binding Path=Field.IsEnabled, RelativeSource={RelativeSource TemplatedParent}}"
                                 ContextMenu="{Binding Source={StaticResource FieldContextMenu}}" >
                            <TextBox.Background>
                                <SolidColorBrush Color="{Binding Path=Field.CurrentBackgroundColor, RelativeSource={RelativeSource TemplatedParent}}"/>
                            </TextBox.Background>
                        </TextBox>
                    </StackPanel>
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
    <Setter Property="Focusable" Value="True" />
    <Setter Property="IsTabStop" Value="False" />
</Style>

En nuestra aplicación, debemos ser capaces de establecer programáticamente el enfoque en un control particular dentro de la Plantilla ControlTemplate.

Dentro de nuestro código C #, podemos llegar al "FieldTextBox" en particular basado en nuestros datos. Una vez que tengamos el FieldTextBox correcto, debemos ser capaces de enfocarnos en el TextBox real contenido dentro de ControlTemplate.

La mejor solución que he encontrado es establecer un nombre en el control principal de cada plantilla de control (en este caso, es el TextBox), como "FocusableControl".

Mi código (contenido en el código subyacente para el FieldTextBox) para luego enfocar el control sería:

    Control control = (Control)this.Template.FindName("FocusableControl", this);
    if (control != null)
    {
        control.Focus();
    }

Esta solución funciona. Sin embargo, ¿alguien más sabe de una solución que sea más eficiente que esta?

Respuestas a la pregunta(2)

Su respuesta a la pregunta