WinForms and DataBinding
Posted: Sun Jan 14, 2018 10:26 am
After working a lot with WPFs databinding, I have researched a bit about WinForms databinding, and I have to present a possible solution (again influenced from the years of VO programming ).
WinForms databinding seems to be not so powerful as WPFs databinding, but simple solutions are possible also here. Please look at this peace of code:
Inherit your window class from this class (BaseView), and then build a ViewModel that implements the INotifyPropertyChanged interface. Assign this ViewModel then to your window in the Use() method, and the databinding will work:
Of course, the data in your ViewModel (or you can use the terminus "server") if you prefer ) can come from any datasource, even from a DBF.
As always you can find a complete working sample application in XIDE export format attached to this message.
Wolfgang
WinForms databinding seems to be not so powerful as WPFs databinding, but simple solutions are possible also here. Please look at this peace of code:
Code: Select all
using System.Windows.Forms
using System.ComponentModel
class BaseView inherit Form
constructor()
return
method Use( oViewModel as INotifyPropertyChanged ) as void
local oControls as System.Windows.Forms.Control.ControlCollection
local oTextBox as TextBox
oControls := self:Controls
foreach oControl as Control in oControls
do case
case oControl is TextBox
oTextBox := ( TextBox ) oControl
oTextBox:DataBindings:Add( "Text", oViewModel, oTextBox:Name )
endcase
next
return
end class
Code: Select all
oSampleView := SampleView{}
oSampleView:Use( SampleViewModel{} )
Application.Run( oSampleView )
As always you can find a complete working sample application in XIDE export format attached to this message.
Wolfgang