2017-09-17 7 views
0

Je suis en train d'hériter le style Mahapp de Datagrid, j'ai créé un style pour les lignes de la grille de données comme ceci:BaseOn ne fonctionne pas correctement

<UserControl.Resources>  
    <Style x:Key="DataGridRow"> 
     <Style.Resources> 
      <Style TargetType="DataGridRow" BasedOn="{StaticResource MetroDataGridRow}"> 
       <Style.Triggers> 
        <DataTrigger Binding="{Binding Selected}" Value="True"> 
         <Setter Property="Background" Value="LightGray"></Setter> 
        </DataTrigger> 
       </Style.Triggers> 
      </Style> 
     </Style.Resources> 
    </Style> 
</UserControl.Resources> 

Malheureusement, quand je demande ce style sur le Datagrid Je reçois le style par défaut de wpf et non mahapp, qu'est-ce que je fais mal? grâce

<DataGrid AutoGenerateColumns="False" CanUserAddRows="false" Style="{StaticResource DataGridRow}"> 
+0

Est-ce que la fenêtre de sortie dire quoi que ce soit? En outre, comment appliquez-vous ce style aux lignes DataGrid? Pouvez-vous nous montrer le xaml? –

+0

@MassimilianoKraus question mise à jour et non, il n'y a pas d'erreur –

+0

Je ne sais pas Mahapp, donc je demande: quelle est la valeur 'TargetType' du style' MetroDataGridRow'? –

Répondre

3

Vous devez définir votre style personnalisé à la propriété RowStyle de la DataGrid, cause la DataGrid ne regarde pas pour les styles de ligne implicites.

<UserControl.Resources> 
    <Style x:Key="CustomRowStyle" BasedOn="{StaticResource MetroDataGridRow}" TargetType="{x:Type DataGridRow}"> 
     <Style.Triggers> 
      <DataTrigger Binding="{Binding Selected}" Value="True"> 
       <Setter Property="Background" Value="LightGray" /> 
      </DataTrigger> 
     </Style.Triggers> 
    </Style> 
</UserControl.Resources> 

Utilisation:

<DataGrid RowStyle="{StaticResource CustomRowStyle}" />