none
In readonly DataGrid einzelne Spalte änderbar machen RRS feed

  • Frage

  • Hallo,

    in der xaml habe ich ein readOnly DataGrid angelegt

     <DataGrid Name="dgrSynthesis_0" IsReadOnly="True" />	

    Programmatisch weise ich einen Inhalt zu
    und eine von den 6 Spalten soll änderbar sein (bool; CheckBox).

    Nun möchte ich fragen ob jemand weiß, wie man das programmatisch, also im Codeehind umsetzt.
    Soweit ich herausgefunden habe, kann ich dem Objekt von DataGridTextColumn die Eigenschaft IsReadOnly = "false" zuweisen.
    Aber leider weiß ich nicht, wie ich von DataGridColumn dgr_Synthesis_0.Columns[5]zu DataGridTextColumn komme.

    Kann mir jemand weiterhelfen, um eine einzelne Spalte bearbeitbar machen zu können?!


    www.mehlhop.com


    • Bearbeitet frank me Freitag, 4. April 2014 12:19
    Freitag, 4. April 2014 12:18

Antworten

  • Hallo,
    du warst schon auf dem richtigen Weg ;)
    belasse die IsReadOnly-Eigenschaft des DataGrids einfach auf false und setze die Eigenschaft der nicht editierbaren Spalten auf true.
    //dgr.IsReadOnly = false;
    dgr.Columns[0].IsReadOnly = true; dgr.Columns[1].IsReadOnly = true; dgr.Columns[2].IsReadOnly = true; dgr.Columns[3].IsReadOnly = true; //dgr.Columns[4].IsReadOnly = false;//unnötig


    Koopakiller [kuːpakɪllɐ] (Tom Lambert)
    Webseite | Code Beispiele | Facebook | Twitter | Snippets   C# ↔ VB.NET Konverter
    Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke.

    • Als Antwort markiert frank me Montag, 7. April 2014 10:24
    Freitag, 4. April 2014 13:20
    Moderator

Alle Antworten

  •             DataGridColumn dgc = dgSteps.Columns[4];
                dgc.IsReadOnly = false;
    sieht aus wie was ich suche, aber funktioniert leider nicht.
    Wenn ich auf die CheckBox klicke, so wird lediglich die Zeile markiert.
    • Bearbeitet frank me Freitag, 4. April 2014 13:04
    Freitag, 4. April 2014 12:31
  • Hallo,
    du warst schon auf dem richtigen Weg ;)
    belasse die IsReadOnly-Eigenschaft des DataGrids einfach auf false und setze die Eigenschaft der nicht editierbaren Spalten auf true.
    //dgr.IsReadOnly = false;
    dgr.Columns[0].IsReadOnly = true; dgr.Columns[1].IsReadOnly = true; dgr.Columns[2].IsReadOnly = true; dgr.Columns[3].IsReadOnly = true; //dgr.Columns[4].IsReadOnly = false;//unnötig


    Koopakiller [kuːpakɪllɐ] (Tom Lambert)
    Webseite | Code Beispiele | Facebook | Twitter | Snippets   C# ↔ VB.NET Konverter
    Markiert bitte beantwortende Posts als Antwort und bewertet Beiträge. Danke.

    • Als Antwort markiert frank me Montag, 7. April 2014 10:24
    Freitag, 4. April 2014 13:20
    Moderator
  • Ah, danke Tom! :-)

    Außerdem habe ich jeweils einmal auf die CheckBox geklickt
    und damit wurde die Zeile markiert und nicht die Checkbox umgeschalten.
    Erst beim zweiten Klick auf die CheckBox wurde diese aktiv.

    Leider funktioniert das nur, wenn ich mein abonniertes Event MouseLeftButtonUp entferne.
    Aber ich bin darauf angewiesen, den Klick auf eine Zeile im DataGrid auszuwerten.
    Wenn die Zeilen auf den Maus-Klick reagieren, wird die Möglichkeit, die CheckBox zu checken überschreiben.

    Also möchte ich fragen, ob jemanden dazu noch was einfällt?!?


    www.mehlhop.com


    • Bearbeitet frank me Freitag, 4. April 2014 14:10
    Freitag, 4. April 2014 13:52
  • Ich habe mir nun eine andere Lösung ausgedacht.

    Einmal klicken = markieren.
    Doppelklicken = CheckBox ändern.


    www.energiewende-mach-ich-selbst.de

    Montag, 7. April 2014 10:24