none
Summe in Textbox (aus Einzelwerten, die in einem Datagrid erfasst werden) RRS feed

  • Frage

  • Hallo,

     

    ich habe da mal eine Frage, und hoffe Ihr könnt mir da helfen, wie ich da genau vorgehe.

    Ich habe auf meiner WPF Form  ein Datagrid, wo ich in einer Spalte Werte erfasse. Die Summe (der erfassten Werte aus dem DataGrid) würde ich mir gerne in einer Textbox parallel zur Eingabe anzeigen lassen. Habt Ihr da Ideen wie das am besten bewerkstellige?

     

    LG

    Günter

    Dienstag, 20. Dezember 2011 12:19

Antworten

Alle Antworten

  • Hallo Günter,

    eventuell kannst Du für die Spalte ein Template definieren, das eine TextBox enthält. Dort kannst Du Dich dann an das TextChanged Event hängen und die entsprechenden Berechnungen ausführen.

    Eventuell ist es aber besser, die Berechnung erst auszuführen, wenn der Benutzer die Zelle verlässt bzw. die Eingabe bestätigt. Die Berechnung ist sonst während der Eingabe ja immer falsch, was vielleicht etwas verwirrend ist.... nur so als Gedanke :)

    Gruß

    Jus

     

    Dienstag, 20. Dezember 2011 14:59
  • Hallo Jürgen,

     

    vielen Dank für deine Antwort. Dein Vorschlag hört sich nach CodeBehind an. Das wollte ich eigentlich vermeiden. Idealerweise (ich versuch das aber auch gerade) würde ich das gerne über eine MVVM-Implementierung lösen.

     

    LG

     

    Günter

    Dienstag, 20. Dezember 2011 15:29
  • Wenn du das mit MVVM machst, dann hast du ja die Datenquelle im ViewModel definiert. Kannst du ein changed deiner Datenquelle feststellen? Wenn ja dann Werte vom Event aus berechnen, in eine String Eigenschaft speichern und diese an die Textbox binden. Wenn nicht binde ein neuen Command an das CellChanged Event des Datagrids (z.b. mit dem Mvvm Light Toolkit) und berechne dann in der Command Logik... (der Rest wie vorher beschrieben)
    Dienstag, 20. Dezember 2011 16:50
    Beantworter
  • Einen sehr guten Ansatz für "mein" Problem, fand ich hier

    http://gallery.expression.microsoft.com/CollectionAggregator

    Mittwoch, 4. Januar 2012 12:09