13 Stimmen

Warum verwendet ItemsControl nicht mein ItemTemplate?

Ich kann ein ItemTemplate innerhalb eines ItemsControls verwenden, um Elemente in einem bestimmten Format darzustellen. Wenn jedoch eines der Elemente im ItemsControl zufällig, sagen wir, eine TextBox ist, wird diese TextBox anstelle einer Instanz des ItemsTemplate gerendert. Soweit ich das beurteilen kann, gilt dies für jedes FrameworkElement. Ist dieses Verhalten für ein ItemsControl vorgesehen, 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 hatte erwartet, dass hier vier blaue Rechtecke angezeigt werden. Ich dachte, dass jedes Mal, wenn ein ItemTemplate definiert wurde, jedes Element in der Sammlung als eine Instanz des Templates dargestellt wird. In diesem Fall wird jedoch Folgendes angezeigt: ein blaues Rechteck, gefolgt von einer TextBox, gefolgt von einem blauen Rechteck, gefolgt von einem roten Rechteck.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X