WPF DataGrid AlternatingRowBackground und RowStyle Vorrang
Wie mache ich meine RowStyle
zu bekommen, angewendet, nachdem AlternatingRowBackground
? Ich will posten, dass IsOrange
als true
zu haben Orange
hintergrund unabhängig von abwechselnden Zeilen-hintergrund, was nicht der Fall derzeit.
XAML:
<DataGrid Name="g"
AlternatingRowBackground="Blue"
AlternationCount="2"
...
SelectionMode="Single">
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Style.Triggers>
<DataTrigger Binding="{Binding IsOrange}" Value="Y">
<Setter Property="Background" Value="Orange" />
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
...
</DataGrid>
- Wo IsOrange-Eigenschaft, Gelegen, Befindet Es sich Direkt auf den Fenster-Rahmen??
- Ich habe ein viewmodel SomethingWhichCanBeOrangeViewModel die Boolesche IsRange Eigenschaft. Mein raster hat es die ItemsSource-set zu ObservableCollection<SomethingWhichCanBeOrangeViewModel>.
- Okay, so dass Sie sicher sind, dass Ihr Eigentum ist zugänglich in das DataGrid.
- Es funktioniert für die Zeilen, der hintergrund ist nicht betroffen durch den Wechsel, D. H. dass die 3 Einträge, die alle mit IsOrange = wahr, ich bin nur immer 2 Zeilen, die 1. und die 3., die zweite ist Blau. Dies ist keine verbindliche Angelegenheit, es ist eine mit der Rangfolge für die Anwendung von Zeile Stil und abwechselnd. Data driven Stilen sollte immer gewinnen, das macht mich denken, dass es ein bug ist.
- Fünf Minuten, Bitte, Ich Werde Versuchen, Einige Denken
- Sind Sie sicher, dass Ihre trigger aufgerufen wird? Bitte versuchen Sie, die erste.
- das ist es, ich habe kleine Programm und meine Daten raster Funktionierte gut, ich will hinzufügen, eine Antwort
- es gibt nur einen Weg für eine Zeile, um die orange - ein Auslöser. wenn ich sehe, orange, bedeutet dies, es wurde genannt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist kein bug. In einem
Style
können Sie nicht überschreiben Sie einen lokalen Wert für die zweite Zeile. Das ist, warum dies nicht funktioniertAber wenn Sie
AlternatingRowBackground
imStyle
können SieDank diese Antwort.
In meinem Programm habe ich zwei Klassen, die zusätzlich zum Hauptfenster enthält eine DataGird nur. Beginnen wir mit der ersten Klasse:
MyClass.cs:
Habe ich nur zwei Eigenschaften,
IsOrange
gibt an, ob die Zeile sollte jetzt orange sein.((Interessieren sich nicht für die andere Eigenschaft.))
Nun das view-model-Klasse enthält eine einzige Sammlung von MyClass.
MyClassViewModel.cs:
Im Hauptfenster.xaml:
schließlich im Hauptfenster.xaml.cs:
und das ist das Ergebnis:
können Sie senden Sie mir Ihre E-Mail-senden Sie die app.
Glück 🙂