Hallo,
ich versuche in einem DataGrid den Zellen-Hintergrund in Abhängigkeit ihres Wertes zu setzten (z.B. Wert < 0 = Rot, Wert >0 grün).
Das ganze möchte ich über MVVM lösen, d.h. ich definiere dem ViewModell eine Variable _style vom Type System.Windows.Style. Dieser wird im Konstruktor automatisch auf Basis
des Zellenwerts ein Style zugeordnet. Soweit, so gut.
Nun möchte ich, dass während das Grid mit Daten gefüllt wird, der Cell-Style anhand der _style-Variable gesetzt wird. Das möchte durch eine Bindung der entsprechenden Spalte an der Variable oder einer Methode realisieren.
Ist das auf diese Art und Weise zu realisieren? Wenn ja, wie binde ich die Variable/Methode an den CellStyle-Parameter? Oder habt ihr einen anderen Tip oder Vorschlag für mich?
Gruß,
Mario
ich versuche in einem DataGrid den Zellen-Hintergrund in Abhängigkeit ihres Wertes zu setzten (z.B. Wert < 0 = Rot, Wert >0 grün).
Das ganze möchte ich über MVVM lösen, d.h. ich definiere dem ViewModell eine Variable _style vom Type System.Windows.Style. Dieser wird im Konstruktor automatisch auf Basis
des Zellenwerts ein Style zugeordnet. Soweit, so gut.
Nun möchte ich, dass während das Grid mit Daten gefüllt wird, der Cell-Style anhand der _style-Variable gesetzt wird. Das möchte durch eine Bindung der entsprechenden Spalte an der Variable oder einer Methode realisieren.
C#-Quellcode
- //Sorry ... programmiere leider in C#
- public void createGrid() {
- // ...
- var column4 = new DataGridTextColumn();
- column4.Header = "Resturlaub";
- column4.Binding = new Binding("RestHolidays");
- column4.Width = 40;
- column4.CellStyle = ***; // <-- Hier hätte ich gerne eine Bindung zu der Variable _style oder einer Methode, die den Wert setzt, z.B. getStyle()
- column4.IsReadOnly = true;
- dataGrid.Columns.Add(column4);
- // ...
- dataGrid.ItemsSource = Data.gridPlans;
- }
- public Style getStyle() {
- if (_restUrlaub < 0)
- return (Style)FindResource("DataGridCell_RED");
- else
- return (Style)FindResource("DataGridCell_GREEN");
- }
Ist das auf diese Art und Weise zu realisieren? Wenn ja, wie binde ich die Variable/Methode an den CellStyle-Parameter? Oder habt ihr einen anderen Tip oder Vorschlag für mich?
Gruß,
Mario