¿Por qué ItemsControl no usa My ItemTemplate?

Puedo usar un ItemTemplate dentro de ItemsControl para representar elementos en un formato específico. Sin embargo, si uno de los elementos dentro de ItemsControl es, por ejemplo, un TextBox, ese TextBox se representa en lugar de una instancia de ItemsTemplate. Por lo que puedo decir, esto es cierto para cualquier FrameworkElement. ¿Es este el comportamiento previsto para un ItemsControl, o estoy haciendo algo incorrectamente?

Un ejemplo:

<ItemsControl>
  <ItemsControl.ItemTemplate>
    <DataTemplate>
      <Grid Margin="5">
        <Rectangle Fill="Blue" Height="20" Width="20" />
      </Grid>
    </DataTemplate>
  </ItemsControl.ItemTemplate>
  <ItemsControl.Items>
    <sys:Object />
    <TextBox />
    <sys:Object />
    <Rectangle Fill="Red" Height="20" Width="20" />
  </ItemsControl.Items>
</ItemsControl>

Esperaba que esto mostrara cuatro rectángulos azules. Pensé que cada vez que se ha definido un ItemTemplate, cada elemento de la colección se representa como una instancia de la plantilla. Sin embargo, en este caso se representa lo siguiente: un rectángulo azul seguido de un cuadro de texto seguido de un rectángulo azul seguido de un rectángulo rojo.

Respuestas a la pregunta(2)

Su respuesta a la pregunta