Ich habe mehrere Dinge ausprobiert, aber der AlternationIndex im Trigger funktioniert überhaupt nicht.WPF DataGrid Alternating Row Hintergrund funktioniert nicht
Wenn ich
verwenden<DataGrid x:Name="dataGrid" Margin="10,40,10,10" ItemsSource="{Binding}"
AlternatingRowBackground="DimGray" AlternationCount="1"
es funktioniert, aber dann die IsMouseOver Auslöser wird auf den abwechselnden Reihen nicht.
So mache ich das, was jeder hier schreibt:
<Style x:Key="DataGridRowStyle" TargetType="{x:Type DataGridRow}">
<Setter Property="Height" Value="22"/>
<Style.Triggers>
<Trigger Property="ItemsControl.AlternationIndex" Value="0">
<Setter Property="Background" Value="#FF574F4F"/>
</Trigger>
<Trigger Property="ItemsControl.AlternationIndex" Value="1">
<Setter Property="Background" Value="AliceBlue"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Background" Value="#FF8B1515" />
</Trigger>
</Style.Triggers>
...
...
<DataGrid x:Name="dataGrid" Margin="10,40,10,10" ItemsSource="{Binding}" IsReadOnly="True"
ColumnHeaderStyle="{StaticResource DataGridColumnHeaderStyle}"
RowHeaderStyle="{StaticResource DataGridRowHeaderStyle}"
CellStyle="{StaticResource DataGridCellStyle}"
RowStyle="{StaticResource DataGridRowStyle}"....
<DataGrid.Columns>
<DataGridTextColumn Header="Name" Binding="{Binding Name}"/>
<DataGridTextColumn Header="Description" Binding="{Binding Description}"/>
<DataGridTextColumn Header="Author" Binding="{Binding Author}"/>
</DataGrid.Columns>
Mit diesem Code der Aliceblue wird nicht angezeigt. Ich habe alles versucht, aber ich habe keine Ahnung, warum es nichts tut. AlternationIndex 0 funktioniert als Hintergrund aber nicht 1, 2 oder 3. Als Bindequelle habe ich eine DataTable verwendet Nur eine einfache Klasse mit einigen Methoden. Ich komme aus Java 1.6 SWT, dass fancy stuff
table.Columns.Add("Name", typeof(string));
table.Columns.Add("Description", typeof(string));
table.Columns.Add("Author", typeof(string));
....
table.Rows.Add(name, description, author);
Einstellung der Datacontext mit dem Rückgabewert aus dem oberen Code alles neu für mich ist
dataGrid.DataContext = dTable.getTable();
Hat jemand eine Idee, warum es doesn‘ t arbeiten .. es macht mich wirklich verrückt.
Oh man .. Umarmungen für Sie! : D Benutzte AlternationCount nur mit AlternatingRowBackground, aber nicht mit den Triggern. Vielen Dank :) –