ce que vous pouvez faire est de créer un contrôle basé sur un modèle (vous pouvez facilement créer un via des studios visuels Ajouter - Nouveau menu Article) whcich vous dérivez de ListBox:
public class MyListBox : ListBox
{
public MyListBox()
{
this.DefaultStyleKey = typeof(MyListBox);
}
}
Lorsque vous créez un contrôle basé sur un modèle, il sera créez aussi le dossier Themes et là un generic.xaml où vos styles sont définis. Après cela prendre la ListBox - style de here et copier et la coller dans votre generic.xaml à la bonne position (vous avez besoin du ValidationTooltipTemplate aussi):
<Style TargetType="local:MyListBox">
<Setter Property="Padding" Value="1"/>
<Setter Property="Background" Value="#FFFFFFFF" />
<Setter Property="Foreground" Value="#FF000000"/>
<Setter Property="HorizontalContentAlignment" Value="Left" />
<Setter Property="VerticalContentAlignment" Value="Top" />
<Setter Property="IsTabStop" Value="False" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="TabNavigation" Value="Once" />
<Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto"/>
<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto"/>
<Setter Property="BorderBrush"> ...
Ok, après que vous définissez ItemTemplate dans le même XAML:
<DataTemplate x:Key="MyItemTemplate">
et l'ajouter à la liste Setter de votre ListBox style:
<Style TargetType="local:MyListBox">
<Setter Property="ItemTemplate" Value="{StaticResource MyItemTemplate}"/>^
Maintenant c'est votre modèle par défaut.
Mais avez-vous besoin d'ajouter un comportement spécifique à votre ListBox, parce que vous voulez en hériter? Si vous voulez juste ajouter le modèle d'élément spécifique, je ne recommanderais pas de dériver de ListBox (en fait, le DataTemplate n'est pas générique, il est toujours spécifique pour un DataType). Si vous n'ajoutez pas de comportement spécifique, je créerais un DataTemplate global (peut-être défini dans votre app.xaml) et je le référencerais en tant que DataTemplate chaque fois que vous en auriez besoin ou je créerais un style spécifique avec ce DataTemplate et définirais le style ListBox commun.
Si vous avez des questions, laissez un commentaire.
Espérons que cela aide!
BR,
TJ