DataGrid Cellstyle, Color ändern Eingetragenes Datum < als aktuelles Datum, XAML möglich?

  • WPF

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von Nofear23m.

    DataGrid Cellstyle, Color ändern Eingetragenes Datum < als aktuelles Datum, XAML möglich?

    Hi,

    ich würde gern wissen wie ich eine DatagridCell Farbe ändern kann, simply nach 'Datum welches in der Zelle steht" < Aktuelles Datum' dann Zelle Rot.
    Gibt es da eine XAML lösung ohne nen converter einzubauen? Das raff ich nämlich nicht :P

    Die Zelle ist aktuell so

    XML-Quellcode

    1. <DataGridTextColumn Header="Realisiert bis" Binding="{Binding RealisiertBis,StringFormat=dd.MM.yyyy}" >


    sollte also das heutige Datum größer sein als das in der Zelle soll sie rot werden.

    Danke
    Hallo

    Dafür musst du im Grunde nur den ElementStyle der DataGridTextColumn ändern.

    Folgendes Beispiel:

    XML-Quellcode

    1. <DataGridTextColumn Binding="{Binding RealisiertBis}">
    2. <DataGridTextColumn.ElementStyle>
    3. <Style TargetType="{x:Type TextBlock}">
    4. <Style.Triggers>
    5. <Trigger Property="Text" Value="John">
    6. <Setter Property="Background" Value="LightGreen"/>
    7. </Trigger>
    8. </Style.Triggers>
    9. </Style>
    10. </DataGridTextColumn.ElementStyle>
    11. </DataGridTextColumn>


    In deinem Fall benötigst du dann noch einen Converter. Ob der Converter nun ein Boolean zurückgibt und du dies im Trigger dann auswertest oder der Converter direkt eine Color bzw. solidacolorBrush zurückgibt bleibt dir überlassen. Bei letzterem verkürzt sich der XAML ein wenig:

    XML-Quellcode

    1. <DataGridTextColumn Binding="{Binding RealisiertBis}">
    2. <DataGridTextColumn.ElementStyle>
    3. <Style TargetType="{x:Type TextBlock}">
    4. <Setter Property="Background" Value="{Binding RealisiertBis, Converter={StaticResource DateToBrushConverter}}"/>
    5. </Style>
    6. </DataGridTextColumn.ElementStyle>
    7. </DataGridTextColumn>


    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##

    Ne, aber ein Converter ist in 20 Sekunden fertig und ziehe ich sowieso immer vor da man diese immerhin auch Debuggen kann was bei einem Trigger nicht geht.

    Grüße
    Sascha
    If _work = worktype.hard Then Me.Drink(Coffee)
    Seht euch auch meine Tutorialreihe <WPF Lernen/> an oder abonniert meinen YouTube Kanal.

    ## Bitte markiere einen Thread als "Erledigt" wenn deine Frage beantwortet wurde. ##