C# WPF -> DataGrid Checkbox Header (nur Header!)

  • WPF

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

    C# WPF -> DataGrid Checkbox Header (nur Header!)

    Hallo Leute,

    ich suche nach einer Möglichkeit, dem Header einer DataGridColumn eine Checkbox zugeben.
    Dabei soll die CheckBox ausschließlich im Header erscheinen und nicht in den Row Items der Spalte!

    Zudem soll dies per Code geschehen und nicht per XAML.
    Wie das mit XAML geht, weiß ich.

    Kann mir hier jemand weiterhelfen?

    Mein erster kläglicher Versuch:
    (table == DataTable)

    C#-Quellcode

    1. for (int i=0; i<table.Columns.Count; i++)
    2. {
    3. var column = new DataGridTextColumn();
    4. column.HeaderTemplate = new DataTemplate(typeof(CheckBox));
    5. column.Header = table.Columns[i].ColumnName.ToString();
    6. dataGrid.Columns.Add(column);
    7. }

    Hallo @Petersilie

    Erstelle wenn möglich Templates immer per XAML. Siehe auch mein Tutorial im Kapitel "Styles Templates und Trigger".
    Dein Thema hatten wir z.b. hier. Deklaration Checkbox im DataGridTemplate

    Bei Fragen kannst du dich gerne melden.

    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. ##

    @Nofear23m Danke für die Hilfe.

    Habe es jetzt, wie du vorgeschlagen/ empfohlen hast, doch per XAML gemacht.
    Hier meine Lösung:
    Spoiler anzeigen

    XML-Quellcode

    1. <DataGrid x:Name="dataGrid" Margin="10,10,10,249" >
    2. <DataGrid.ColumnHeaderStyle>
    3. <Style TargetType="DataGridColumnHeader">
    4. <Setter Property="ContentTemplate">
    5. <Setter.Value>
    6. <DataTemplate>
    7. <CheckBox Content="{Binding}"/>
    8. </DataTemplate>
    9. </Setter.Value>
    10. </Setter>
    11. </Style>
    12. </DataGrid.ColumnHeaderStyle>
    13. <DataGrid.Columns>
    14. <DataGridTextColumn x:Name="..."
    15. </DataGrid.Columns>
    16. </DataGrid>
    Das freut mich.

    PS: Das Margin des DataGrids deutet auf ein Fehlerhaftes Design hin. Ich darf mal folgendes verlinken: Tutorialreihe <WPF lernen/>

    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. ##