Disons que j'ai une collection d'objets de différentes classes. Chaque classe a son UserControl DataTemplated dans un fichier de ressources.Enveloppez quelque chose autour de chaque élément dans un ItemsControl
Maintenant, je veux utiliser ItemsControl pour afficher la collection, mais je veux une bordure ou un expandeur autour de chaque élément.
je me attends quelque chose comme cela fonctionne:
<ItemsControl ItemsSource="{Binding MyObjects}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border BorderBrush="Black" BorderThickness="3">
<ContentPresenter/>
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
Mais le ContentPresenter semble prendre ItemTemplate, parce que je reçois un débordement de pile.
Comment obtenir le DataTemplate de chaque élément dans ItemTemplate?
Je pense que vous devez fournir quelques détails sur l'erreur que vous rencontrez. Est-ce que votre fenêtre de sortie fournit des indices? – benPearce
J'ai un bouton qui ajoute un élément à MyObjects. Après je l'ai cliqué, il n'y a rien de nouveau dans la sortie. J'ai une System.StackOverflowException de WindowsBase.dll. Il n'y a pas de source disponible, il n'y a pas de démontage à me montrer, il n'y a pas de détails de l'exception elle-même. ("Impossible d'évaluer l'expression car le thread actuel est dans un état de débordement de pile"). La pile d'appel dans VS ne me donne rien. Mais si je supprime le ContentPresenter du ItemTemplate, je n'obtiens qu'une bordure vide pour chaque élément, sans débordement de pile. – Guge