Laden...

gleiche Hintergrundfarbe für einige DataGridTextColumns

Erstellt von MarkusRies vor 2 Jahren Letzter Beitrag vor 2 Jahren 245 Views
M
MarkusRies Themenstarter:in
8 Beiträge seit 2021
vor 2 Jahren
gleiche Hintergrundfarbe für einige DataGridTextColumns

Hi.

Eine Anfänger-Frage:

Ich habe in einem DataGrid ca. 50 Columns der Art


 <DataGridTextColumn IsReadOnly="True"      Header="Spalte1"             Binding="{Binding Wert1}" />
 <DataGridTextColumn IsReadOnly="True"      Header="Spalte2"             Binding="{Binding Wert2}" />
 <DataGridTextColumn IsReadOnly="True"      Header="Spalte3"             Binding="{Binding Wert3}" />
 <DataGridTextColumn IsReadOnly="True"      Header="Spalte4"             Binding="{Binding Wert4}" />

Nun möchte ich einige der Spalten farblich einfärben (Background="Red") , so dass es im Prinzip so wäre:


 <DataGridTextColumn IsReadOnly="True"      Header="Spalte1"             Binding="{Binding Wert1}" />
 <DataGridTextColumn IsReadOnly="True"      Header="Spalte2"             Binding="{Binding Wert2}" />
 <DataGridTextColumn IsReadOnly="True"      Header="Spalte3"             Binding="{Binding Wert3}" Background="Red" />
 <DataGridTextColumn IsReadOnly="True"      Header="Spalte4"             Binding="{Binding Wert4}" Background="Red" />

Leider geht das so nicht.

Ich will aber NICHT für jede der betreffenden Spalten das aufwändig mit Sub-Elementen machen, sondern ähnlich wie im CSS eine class="RoterHintergrund" hinterlegen.
Um dann (im Prinzip zu sagen):


 <DataGridTextColumn IsReadOnly="True"      Header="Spalte3"             Binding="{Binding Wert2}" HintergrundClass="RoterHintergrund" />

Wie geht das?

Danke!
M.

4.939 Beiträge seit 2008
vor 2 Jahren

Dies geht mittels des CellStyle, s. z.B. Setting DataGrid column's Background Color in XAML? oder auch mittels Binding WPF Datagrid Background abhängig von ausgeblendeter Spalte:


<DataGridTextColumn.CellStyle>
    <Style TargetType="DataGridCell">
        <Setter Property="Background" Value="Red" />
    </Style>
</DataGridTextColumn.CellStyle>

Falls du auch noch Unterschiede bzgl. Bearbeitungsmodus machen möchtest, dann brauchst du dafür EditingElementStyle und ElementStyle.

Damit du den Style nur einmalig definieren mußt, kannst du ihn als Ressource ablegen, s. Styles and templates (WPF .NET) (unter "Styles").

Edit: Hier noch eine weiterer Artikel dazu: WPF Styles benutzen

5.658 Beiträge seit 2006
vor 2 Jahren

Siehe dazu auch [Artikel] MVVM und DataBinding, 4. Kapitel: Styles und Trigger.

Weeks of programming can save you hours of planning