Entwickler-Ecke

WPF / Silverlight - WPF Datagrid Column Row Cell Background Color mit C# ändern


ebber - Sa 09.01.10 01:44
Titel: WPF Datagrid Column Row Cell Background Color mit C# ändern
Hi,

ich möchte die Hintergrundfarbe einer Spalte oder Zeile oder einer Zelle im C# Code zur Laufzeit ändern. Ich suche eingentlich einfach sowas wie :


C#-Quelltext
1:
Cell.Background = Colors.Blue;                    


Irgendwie scheint mir das aber bei weitem nicht so einfach zu gehen. Kann mir da vielleicht jemand weiterhelfen?

MfG


Greenberet - Sa 09.01.10 01:50

ich hab jetzt schon länger nicht mehr mit wpf gearbeitet, aber muss man nicht einen LinearGradientBrush (oder sowas ähnliches ) setzen?


ebber - Sa 09.01.10 14:31

user profile iconGreenberet hat folgendes geschrieben Zum zitierten Posting springen:
aber muss man nicht einen LinearGradientBrush (oder sowas ähnliches ) setzen?


... zum Beispiel, oder einen SolidColorBrush aber wo drauf? Es gibt diese Cell.Style Property die wiederum eine Setter Property hat wo es theoretisch dann die Background Property geben sollte aber ich schaffe es nicht mit dem Code dahin zu kommen und diese zu setzen.


Kha - Sa 09.01.10 15:14

Wozu auf einmal über Style, Cell.Background sollte doch stimmen...?


ebber - Sa 09.01.10 15:56

Sind wir hier alle bei WPF .Net 4.0? Oder habe ich mich zum zweiten mal verguckt?

// Edit: Ich habe mich wohl wirklich verguckt :oops: irgendwie ist da wohl was durcheinander geraten. Sorry für das Durcheinander.

Wobei sich mir immer noch die andere Frage stellt. Wie färbe ich eine ganze Column. Da habe ich jetzt nämlich 3 mal nach einer Background property geschaut, aber die hat nur Column.CellStyle!?!


Kha - Sa 09.01.10 17:10

Dort ist ein Style goldrichtig, schließlich ist DataGridColumn gar kein Control.
Könnte etwa so aussehen:

C#-Quelltext
1:
2:
3:
4:
5:
deineColumn.CellStyle = new Style {
  Setters = {
    new Setter(ContentControl.BackgroundProperty, Brushes.Blue)
  }
};


Vielleicht sollte ich noch erwähnen, dass das Ganze eigentlich nicht im Code-Behind geschehen sollte ;) ...


ebber - Sa 09.01.10 17:20

user profile iconKha hat folgendes geschrieben Zum zitierten Posting springen:

Vielleicht sollte ich noch erwähnen, dass das Ganze eigentlich nicht im Code-Behind geschehen sollte ;) ...


Da hast du warscheinlich recht. Ich habe mir mittlerweile auch überlegt, dass es eigentlich anders gehen müsste. Aber für den Anfang reicht das mal.
Danke.