Почему ItemsControl не использует мой ItemTemplate?
Я могу использовать ItemTemplate внутри ItemsControl для отображения элементов в определенном формате. Однако, если один из элементов в ItemsControl, скажем, представляет собой, например, TextBox, этот TextBox отображается, а не экземпляр ItemsTemplate. Из того, что я могу сказать, это верно для любого FrameworkElement. Это предполагаемое поведение для ItemsControl или я что-то делаю неправильно?
Пример:
<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>
Я ожидал, что это покажет четыре синих прямоугольника. Я думал, что каждый раз, когда ItemTemplate был определен, каждый элемент в коллекции отображается как экземпляр шаблона. Однако в этом случае отображается следующее: синий прямоугольник, за которым следует TextBox, за которым следует синий прямоугольник, за которым следует красный прямоугольник.