Hallo,
ich beginne gerade, mich etwas mit der Datenbindung in VB.NET vertraut zu machen und stolpere gleich über die einfachsten Sachen. Ich hoffe, VB.NET hat dafür auch eine Lösung, sonst kann man sich die ganze Datenbindung sparen. Hier nun das Problem:
Der Einfachheit halber sagen wir, ich hätte eine Klasse mit nur einer Eigenschaft namens "TextProperty". Diese ist vom Typ "String".
Des Weiteren habe ich ein WinForms-Formular mit einer Textbox "Textbox1" sowie einer Abbrechen- und einer OK-Schaltfläche.
Diesem Formular wird im Konstruktor ein TestClass-Objekt übergeben und dessen "TextProperty"-Eigenschaft an die "Text"-Eigenschaft der Textbox gebunden.
Öffne ich jetzt das Formular und ändere den Text in der Textbox, so wird dieser geänderte Text auch brav in die gebundene TextProperty-Eigenschaft übertragen.
Wie kann man es jedoch bewerkstelligen, dass beim Betätigen von "Abbrechen" diese Änderung eben NICHT weitergegeben wird. Bei mehreren gebundenen Steuerelementen müsste sie ja quasi sogar rückgängig gemacht werden.
Wenn ich mich selbst um das Zwischenspeichern der alten Werte und das Wiederherstellen des Urzustands kümmern muss, dann ist die ganze Datenbindung für die Katz.
Aber vielleicht übersehe ich hier ja was.
Vielen Dank im Voraus für den Wink mit dem Zaunpfahl.
ich beginne gerade, mich etwas mit der Datenbindung in VB.NET vertraut zu machen und stolpere gleich über die einfachsten Sachen. Ich hoffe, VB.NET hat dafür auch eine Lösung, sonst kann man sich die ganze Datenbindung sparen. Hier nun das Problem:
Der Einfachheit halber sagen wir, ich hätte eine Klasse mit nur einer Eigenschaft namens "TextProperty". Diese ist vom Typ "String".
Code:
Public Class TestClass Private textProperty As String Public Property TextProperty As String Get Return textProperty End Get Set(ByVal value As String) textProperty = value End Set End Property End Class
Diesem Formular wird im Konstruktor ein TestClass-Objekt übergeben und dessen "TextProperty"-Eigenschaft an die "Text"-Eigenschaft der Textbox gebunden.
Code:
Me.Textbox1.DataBinding.Add("Text", testClass, "TextProperty")
Wie kann man es jedoch bewerkstelligen, dass beim Betätigen von "Abbrechen" diese Änderung eben NICHT weitergegeben wird. Bei mehreren gebundenen Steuerelementen müsste sie ja quasi sogar rückgängig gemacht werden.
Wenn ich mich selbst um das Zwischenspeichern der alten Werte und das Wiederherstellen des Urzustands kümmern muss, dann ist die ganze Datenbindung für die Katz.
Aber vielleicht übersehe ich hier ja was.
Vielen Dank im Voraus für den Wink mit dem Zaunpfahl.
Comment