Ich habe diese Methode ausprobiert .. ohne Glück ..
<Style TargetType="{x:Type DataGridRow}">
<Style.Triggers>
<Trigger Property="ItemsControl.AlternationIndex" Value="0">
<Setter Property="Foreground" Value="Red" />
</Trigger>
</Style.Triggers>
</Style>
Gibt es eine Möglichkeit, den Zeilenindex zu erhalten? Ich habe es sogar versucht
<DataTrigger Binding="{Binding AlternationIndex}" Value="0">
<Setter Property="Foreground" Value="Green"></Setter>
</DataTrigger>
Wenn noch nicht geschehen, müssen Sie die AlternationCount-Eigenschaft von DataGrid festlegen:
<DataGrid AlternationCount="2"
... />
Sie sollten außerdem überprüfen, ob die Foreground-Eigenschaft für ein Control in der DataGridRow verwendet wird. Stellen Sie die Background-Eigenschaft ein, um das Alternations-Zeug zu testen.
Letztendlich bin ich schließlich dazu gekommen, alternative Zeilenfarben generisch festzulegen.
<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>
Stellen Sie den wechselnden Hintergrund folgendermaßen ein:
AlternationCount="2" AlternatingRowBackground="Bisque"
Versuche dies
<DataGrid AlternationCount="2"
AlternatingRowBackground="Salmon" ........
Schließlich habe ich eine Kombination aus Robin Maben- und Th3G33k-Lösung verwendet, weil ich möchte, dass die Farbwechselfarbe mit meiner eigenen überschrieben wird, wenn eine Bedingung erfüllt ist.
<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>