TextChanged/LostFocus/etc. Veranstaltung für DataGridTextColumn
Habe ich eine Liste von Objekt gebunden DataGrid
in einer WPF-Seite und ich bin auf der Suche um ein Objekt direkt nach dem aktuellen, wenn der eingegebene Wert in einer bestimmten Spalte ist weniger als eine bestimmte Anzahl.
<my:DataGridTextColumn Binding="{Binding Path=Hours}"/>
Kann ich nicht für das Leben von mir herauszufinden, wie zu binden, um eine Veranstaltung auf die zugrunde liegenden TextBox
. Verschiedene Websites verweisen die Fähigkeit, dies zu tun, aber keiner sich auf die zugehörige code. Jetzt habe ich mit einem DataGridTemplateColumn
mit einem TextBox
drin, aber ich weiß nicht scheinen, um die Lage, um die aktuelle Zeile mit dieser Lösung.
- können Sie konkreter sein, in welchem Fall Sie benötigen, um an, es gibt vielleicht eine elegantere Lösung, als die Ereignisse, wenn wir die Ursache kennen.
- Ich werde versuchen, fügen Sie zusätzliche Zeilen dynamisch nach dem aktuellen, wenn der Wert in einer bestimmten Spalte geändert werden, unter eine bestimmte Anzahl. Ereignisse, die möglicherweise nicht die Antwort, aber ich weiß nicht genug über das DataGrid, um herauszufinden, sonst. Ich hatte experimentiert mit Bindung an TextChanged-oder LostFocus-auf ein Textfeld in einer DataGridTemplateColumn was auch geklappt hat aber wie ich sagte, war nicht in der Lage, um zu bestimmen, die Reihe.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Um dies zu erreichen benutzte ich die
CellEditEnding
Veranstaltung auf dem Datenblatt-selbst.In der Methode können Sie dann mit einem
Dispatcher
Verzögerung der Aufruf einer Methode, so wird der Wert gespeichert, zurück in die gebundenen Objekts.Können Sie auch die
DataGridCellEditEndingEventArgs
zu der Methode können Sie prüfen die Zeile und Spalte der Zelle, die bearbeitet wurde zusammen mit der zugrunde liegendenTextBox
.Auch da das data-grid ist besorgt über die Objekte der Zeile mit index ist nicht allzu relevant und daher nicht leicht zu bekommen (die ich finden konnte).
Können Sie verwendet diesen code für Zelle und Zeile aktualisiert: