J'ai essayé cette méthode .. sans chance ..
<Style TargetType="{x:Type DataGridRow}">
<Style.Triggers>
<Trigger Property="ItemsControl.AlternationIndex" Value="0">
<Setter Property="Foreground" Value="Red" />
</Trigger>
</Style.Triggers>
</Style>
Y at-il un moyen d’obtenir l’index de la ligne?
<DataTrigger Binding="{Binding AlternationIndex}" Value="0">
<Setter Property="Foreground" Value="Green"></Setter>
</DataTrigger>
Sauf si cela est déjà fait, vous devez définir la propriété AlternationCount de DataGrid:
<DataGrid AlternationCount="2"
... />
Vous devez également vérifier si la propriété Foreground est utilisée pour un contrôle quelconque dans le DataGridRow. Essayez de définir la propriété Background pour tester les options d’alternance.
Enfin, c’est ce que j’ai utilisé pour définir de manière générique des couleurs de rangées alternatives.
<Style TargetType="{x:Type DataGrid}">
<Setter Property="Background" Value="#FFF" />
<Setter Property="AlternationCount" Value="2" />
</Style>
<Style TargetType="{x:Type DataGridRow}">
<Style.Triggers>
<Trigger Property="ItemsControl.AlternationIndex" Value="0">
<Setter Property="Background" Value="#CCC"></Setter>
</Trigger>
<Trigger Property="ItemsControl.AlternationIndex" Value="1">
<Setter Property="Background" Value="#EEE"></Setter>
</Trigger>
</Style.Triggers>
</Style>
Essayez de définir le fond alternatif comme ceci:
AlternationCount="2" AlternatingRowBackground="Bisque"
Essaye ça
<DataGrid AlternationCount="2"
AlternatingRowBackground="Salmon" ........
Enfin, j'ai utilisé la combinaison des solutions Robin Maben et Th3G33k, car je souhaite que la couleur de l'alternance prenne le pas sur la mienne, dès qu'une condition est remplie . Merci à vous deux.
<DataGrid x:Name="gridCustomerOrderItems" HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" AutoGenerateColumns="False"
AlternationCount="2"
IsReadOnly="True" CanUserReorderColumns="True"
ScrollViewer.CanContentScroll="True"
ScrollViewer.VerticalScrollBarVisibility="Auto"
ScrollViewer.HorizontalScrollBarVisibility="Auto">
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Style.Triggers>
<!--first alteraniting colour-->
<Trigger Property="ItemsControl.AlternationIndex" Value="1">
<Setter Property="Background" Value="#EEE"></Setter>
</Trigger>
<!--then override with my own colour-->
<DataTrigger Binding="{Binding InvoiceSet}" Value="True">
<Setter Property="Background" Value="Green"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>