2010-03-05 19 views
2

J'utilise un onglet Tabulation WPF rempli d'une collection utilisant Itemssource.Stylet TabItem lorsqu'il est rempli avec ItemsSource

<TabControl x:Name="_tabControl" ItemsSource="{Binding TabViewModelList}"> 
      <TabControl.ItemContainerStyle> 
        <Style TargetType="TabItem"> 
         <Setter Property="Header" Value="{Binding TabCaption}"/> 
        <Setter Property="Content" Value="{Binding TabContent}"/> 
        <Setter Property="IsSelected" Value="{Binding IsDefault}"/> 
       </Style> 
       </TabControl.ItemContainerStyle> 
      </TabControl> 

Maintenant, je veux mettre mon TabItem style dans mon App.xaml (ou autre RESOURCEFILE) comme ceci:

<Style TargetType="{x:Type TabItem}"> 
      <Setter Property="Template"> 
       <Setter.Value> 
        <ControlTemplate TargetType="{x:Type TabItem}"> 
         <Grid> 
          <Border 
      Name="Border" 
      Background="LightBlue" 
      BorderBrush="Black" 
      BorderThickness="1,1,1,1" 
      CornerRadius="6,6,0,0" > 
           <ContentPresenter x:Name="ContentSite" 
       VerticalAlignment="Center" 
       HorizontalAlignment="Center" 
       ContentSource="Header" 
       Margin="12,2,12,2"/> 
          </Border> 
         </Grid> 
         <ControlTemplate.Triggers> 
          <Trigger Property="IsSelected" Value="True"> 
           <Setter TargetName="Border" Property="Background" Value="LightBlue" /> 
          </Trigger> 
          <Trigger Property="IsSelected" Value="False"> 
           <Setter TargetName="Border" Property="Background" Value="LightGray" /> 
          </Trigger> 
         </ControlTemplate.Triggers> 
        </ControlTemplate> 
       </Setter.Value> 
      </Setter> 
     </Style> 

..mais le ItemContainerStyle, bien sûr remplace le ControlTemplate.

Comment puis-je combiner ces deux éléments afin de pouvoir charger dynamiquement mon tabcontrol tout en continuant à styliser mes TabItems comme je le souhaite?

Répondre

1

Ok ... Résolu mon propre problème. Assez évident ..

Nommé mon modèle

<Style TargetType="{x:Type TabItem}" x:Key="TabItemTemplate"> 

Ajout d'une propriété BasedOn comme ceci:

<Style TargetType="TabItem" BasedOn="{StaticResource TabItemTemplate}"> 

Mais si je pouvais les combiner en un seul modèle s'il vous plaît laissez-moi savoir ...

+0

Merci beaucoup :) – Frinavale