none
Checkbox in datagrid RRS feed

  • Frage

  • Hallo,

    wir haben ein WPF-Datagrid das wir an eine Collection gebunden haben. Die Bindung erfolgt mit AutoGenerateColumns.

    <Grid>

    <DataGridAutoGenerateColumns="True"HorizontalAlignment="Stretch"

    Margin="12,-2,0,2" Name="dataGrid1"DataContext="{Binding}"

    ItemsSource="{BindingDOs}"VerticalAlignment="Stretch"

    CurrentCellChanged="dataGrid1_CurrentCellChanged"

    MouseDown="dataGrid1_MouseDown" />

    </Grid>


    Eine Eigenschaft der gebundenen Collectionelemente ist vom Typ bool und führt nun dazu, dass die hierfür erzeugte Spalte Checkboxes enthält. Dies funktioniert soweit auch ganz prima.

    Nun müssen wir aber unmittelbar auf einen Click auf eine Checkbox reagieren. Dh sobald die Checkbos angeclickt ist, sollte je nach dem Zustand des Inhalts der Checkbox ein digitaler Ausgang gesetzt oder rückgesetzt werden. Wie können wir das  realisieren ?  Was müssen wir in der Xaml und im Code Behind ergänzen ?

    Gerhard

    Donnerstag, 20. September 2012 05:54

Antworten

  • Hi Gerhard,

    ich denke die sauberste Lösung wäre nicht einfach eine Liste von Boolen Werten zu verwenden, sondern ein Objekt mit einen boolen Property (Dort könnte man dann auch eine Bezeichnung desdigitalen Ausgangs als Property bereitstellen).

    Property Changed Implementieren  und auf das Property Changed abfangen um dann den digitalen Ausgang zu setzten.

    Der Andere Weg denke ich ist das CurrentCellChange Event abzufangen und dann den Ausgang zu setzten.

    MFG

    Björn

    Donnerstag, 20. September 2012 08:17
  • Hallo Hatscher,

    Du kannst ein Checkbox Controller  in einem DataGridTemplateColumn stehlen  und die UpdateSourceTrigger = PropertyChanged nutzen, und hier ist ein link über How to: Customize Autogenerated Columns. Ich hoffe dass die Dir helfen kann.

    Gruß,

    Ionut

    Freitag, 12. Oktober 2012 12:01
    Moderator

Alle Antworten

  • Hallo,

    wir haben ein WPF-Datagrid das wir an eine Collection gebunden haben. Die Bindung erfolgt mit AutoGenerateColumns.

    <Grid>

    <DataGridAutoGenerateColumns="True"HorizontalAlignment="Stretch"Margin="12,-2,0,2"Name="dataGrid1"DataContext="{Binding}"ItemsSource="{BindingDOs}"VerticalAlignment="Stretch"CurrentCellChanged="dataGrid1_CurrentCellChanged"MouseDown="dataGrid1_MouseDown" />

    </Grid>


     Eine Eigenschaft der gebundenen Collectionelemente ist vom Typ bool und führt nun dazu, dass die hierfür erzeugte Spalte Checkboxes enthält. Dies funktioniert soweit auch ganz prima.

    Nun müssen wir aber unmittelbar auf einen Click auf eine Checkbox reagieren. Dh sobald die Checkbos angeclickt ist, sollte je nach dem Zustand des Inhalts der Checkbox ein digitaler Ausgang gesetzt oder rückgesetzt werden. Wie können wir das  realisieren ?  Was müssen wir in der Xaml und im Code Behind ergänzen ?

    Gerhard

    Montag, 17. September 2012 19:37
  • Hi Gerhard,

    ich denke die sauberste Lösung wäre nicht einfach eine Liste von Boolen Werten zu verwenden, sondern ein Objekt mit einen boolen Property (Dort könnte man dann auch eine Bezeichnung desdigitalen Ausgangs als Property bereitstellen).

    Property Changed Implementieren  und auf das Property Changed abfangen um dann den digitalen Ausgang zu setzten.

    Der Andere Weg denke ich ist das CurrentCellChange Event abzufangen und dann den Ausgang zu setzten.

    MFG

    Björn

    Donnerstag, 20. September 2012 08:17
  • Hallo Hatscher,

    Du kannst ein Checkbox Controller  in einem DataGridTemplateColumn stehlen  und die UpdateSourceTrigger = PropertyChanged nutzen, und hier ist ein link über How to: Customize Autogenerated Columns. Ich hoffe dass die Dir helfen kann.

    Gruß,

    Ionut

    Freitag, 12. Oktober 2012 12:01
    Moderator
  • Hallo Hatscher/Gerhard Fischer,

    Ich gehe davon aus, dass die Antworten Dir weitergeholfen hatben
    Solltest Du noch "Rückfragen" dazu haben, so gib uns bitte Bescheid.

    Grüße,
    Robert


    Robert Breitenhofer, MICROSOFT   Bitte haben Sie Verständnis dafür, dass im Rahmen dieses Forums, welches auf dem Community-Prinzip Entwickler helfen Entwickler“ beruht, kein technischer Support geleistet werden kann oder sonst welche garantierten Maßnahmen seitens Microsoft zugesichert werden können.

    Donnerstag, 18. Oktober 2012 16:20
    Moderator