J'ai une classe ItemsControl
qui remplace les méthodes suivantes:Modèle de données non injectée dans ItemContainer
protected override bool IsItemItsOwnContainerOverride(object item)
{
return item is TilePanelItem;
}
protected override DependencyObject GetContainerForItemOverride()
{
return new TilePanelItem();
}
J'ai fourni le modèle pour TilePanelItem
qui est le conteneur de ItemsControl
:
<ControlTemplate x:Key="tileItemTemplate" TargetType="my:TilePanelItem">
<Grid Width="200" Height="100">
<Border BorderBrush="Black" BorderThickness="2">
<ContentPresenter RenderTransformOrigin=".5,.5" />
</Border>
</Grid>
</ControlTemplate>
Et le Style
pour cela:
<Style TargetType="my:TilePanelItem">
<Setter Property="Template" Value="{StaticResource tileItemTemplate}" />
</Style>
Enfin l'instance de mon ItemsControl
avec le DataTemplate
:
<my:TileItemsControl x:Name="tileControl" ItemsSource="{Binding}" >
<my:TileItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel />
</ItemsPanelTemplate>
</my:TileItemsControl.ItemsPanel>
<my:TileItemsControl.ItemTemplate>
<DataTemplate>
<Border Background="Blue">
<TextBlock Text="here I am" />
</Border>
</DataTemplate>
</my:TileItemsControl.ItemTemplate>
</my:TileItemsControl>
Le DataTemplate
que je définissais n'est pas injecté dans ItemContainer
. Quand je cours l'application, elle montre les frontières que j'ai déclarées dans le modèle ItemContainter
mais je ne vois pas le DataTemplate
.
Qu'est-ce qui me manque?
Merci un million
Pouvez-vous envoyer votre code de TilePanelItem –