Warum verwendet ItemsControl My ItemTemplate nicht?

Ich kann eine ItemTemplate in einem ItemsControl verwenden, um Elemente in einem bestimmten Format zu rendern. Wenn jedoch eines der Elemente in ItemsControl beispielsweise eine TextBox ist, wird diese TextBox gerendert und nicht eine Instanz der ItemsTemplate. Soweit ich weiß, gilt dies für jedes FrameworkElement. Ist dies das beabsichtigte Verhalten für ein ItemsControl, oder mache ich etwas falsch?

Ein Beispiel

<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>

Ich habe erwartet, dass vier blaue Rechtecke angezeigt werden. Ich dachte, dass jedes Mal, wenn eine ItemTemplate definiert wurde, jedes Element in der Sammlung als Instanz der Vorlage gerendert wird. In diesem Fall wird jedoch Folgendes gerendert: Ein blaues Rechteck, gefolgt von einem Textfeld, gefolgt von einem blauen Rechteck, gefolgt von einem roten Rechteck.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage