¿Cómo acceder dinámicamente a nombres de elementos en XAML?

Tengo un formulario de entrada XAML que el usuario completa.

Quiero validar este formulario.

Tengo la información del campo en una colección que quiero recorrer y verificar cada campo.

Pero, ¿cómo accedo al nombre del campo cuando está en una cadena?p.ej. cuando fieldInformation.FieldName = "CompanyName" Quiero marcar "Field_CompanyName.Text".

Pseudocódigo:

foreach (var fieldInformation in _fieldInformations)
{
    if (Field_{&fieldInformation.FieldName}.Text.Length > 2)
    {
        ErrorMessage.Text = String.Format("The length of {0} is too long, please correct.", fieldInformation.FieldName);
        entryIsValid = false;
    }
}

XAML:

<StackPanel Orientation="Horizontal" Margin="10 10 10 0">
    <TextBlock Width="150" Text="Customer ID:"/>
    <TextBox x:Name="Field_CustomerID" Width="150" MaxLength="5" Text=""/>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="10 10 10 0">
    <TextBlock Width="150" Text="Company Name:"/>
    <TextBox x:Name="Field_CompanyName" Width="150" MaxLength="40" Text=""/>
</StackPanel>
<StackPanel Orientation="Horizontal" Margin="10 10 10 0">
    <TextBlock Width="150"  Text="Contact Name:"/>
    <TextBox x:Name="Field_ContactName" Width="150" MaxLength="30" Text=""/>
</StackPanel>

Código detrás

_fieldInformations.Add(new FieldInformation { FieldName = "CustomerID", FieldSize = 5 });
_fieldInformations.Add(new FieldInformation { FieldName = "CompanyName", FieldSize = 40 });
_fieldInformations.Add(new FieldInformation { FieldName = "ContactName", FieldSize = 30 });

Respuestas a la pregunta(2)

Su respuesta a la pregunta