WPF Custom Control – Modèle ItemsControl non appliqué

Je construis un contrôle WPF personnalisé qui dérive de TabControl. Dans le ControlTemplate, j’utilise un ItemsControl pour afficher une liste liée au modèle (une collection observable de type FileMenuItem). Pendant l’exécution du programme, l’erreur suivante apparaît dans la fenêtre de sortie:

ItemTemplate et ItemTemplateSelector sont ignorés pour les éléments déjà du type de conteneur de ItemsControl; Type = ‘FileMenuItem’

Le type FileMenuItem est dérivé de MenuItem. Si je change la classe de base en DependencyObject, le code s’exécute et le modèle est appliqué (c’est donc une option). J’ai googlé l’erreur et je n’ai rien trouvé à ce sujet. Est-ce que quelqu’un l’a rencontré tout en développant des contrôles personnalisés? Même si j’ai une solution de contournement, j’aimerais comprendre ce qui se passe et je pense que l’utilisation de MenuItem en tant que classe de base est une implémentation plus propre.

Je peux poster plus de code si cela peut aider. Merci!

Le but d’un DataTemplate (comme ItemTemplate) est de fournir une visualisation pour un object de données. Spécifiquement, il définit un ensemble d’éléments à append à l’arborescence visuelle à la place des données transmises à un ContentPresenter ou à un ItemsPresenter. Dans votre cas, votre liste de sources est une collection d’objects qui peuvent déjà être ajoutés directement à l’arborescence visuelle pour être affichés dans l’interface utilisateur.

Vous pouvez voir cela dans l’exemple simplifié suivant où seul “Trois” apparaît en rouge, car les deux premiers éléments sont définis dans un formulaire pouvant être affiché directement par ComboBox.

      One Two Three