Je suis assez nouveau dans le monde de WPF et j'ai quelques problèmes avec les éléments de modèle dans un ItemsControl. Ce dont j'ai besoin est de modéliser des éléments (principalement des boutons) à l'intérieur d'un ItemsControl (ou similaire).ItemTemplate: ListBox vs ItemsControl
Si j'utilise le code XAML suivant ...
<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>
... J'obtenir ce résultat: http://img444.imageshack.us/img444/2167/itemscontrolnottemplate.gif
Le ItemsControl n'a pas appliqué le modèle soit le bouton ni au contrôle TextBlock. Si je change le ItemsControl dans un ListBox comme ceci:
<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>
... je reçois ce résultat: img814.imageshack.us/img814/6204/listboxtoomuchtemplatin.gif
Le modèle est maintenant appliqué à BOTH l'enfant contrôle (même si j'ai défini le DataType comme étant Button uniquement).