Я новичок в мире WPF, и у меня возникли проблемы с шаблонами элементов в ItemsControl. Что мне нужно, так это элементы шаблона (в основном кнопки) внутри ItemsControl (или тому подобное).
Если я использую следующий код XAML ...
<ItemsControl>
<ItemsControl.ItemTemplate>
<DataTemplate DataType="{x:Type Button}">
<Border BorderBrush="AliceBlue"
BorderThickness="3">
<TextBlock Text="Templated!"/>
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
<Button>Not templated</Button>
<TextBlock>Text not templated</TextBlock>
</ItemsControl>
... Получаю такой результат: http://img444.imageshack.us/img444/2167/itemscontrolnottemplate.gif
Элемент ItemsControl не применил шаблон ни к Button, ни к элементу управления TextBlock. Если я изменю ItemsControl на ListBox следующим образом:
<ListBox>
<ListBox.ItemTemplate>
<DataTemplate DataType="{x:Type Button}">
<Border BorderBrush="AliceBlue"
BorderThickness="3">
<TextBlock Text="Templated!"/>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
<Button>Not templated</Button>
<TextBlock>Text not templated</TextBlock>
</ListBox>
... тогда я получаю такой результат: img814.imageshack.us/img814/6204/listboxtoomuchtemplatin.gif
Теперь шаблон применяется к ОБЕИМ дочерним элементам управления (даже если я установил для DataType значение только Button).