xsharp.eu • WinForms and DataBinding
Page 1 of 1

WinForms and DataBinding

Posted: Sun Jan 14, 2018 10:26 am
by wriedmann
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:

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
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:

Code: Select all

oSampleView := SampleView{}
oSampleView:Use( SampleViewModel{} )
Application.Run( oSampleView )
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

Re: WinForms and DataBinding

Posted: Wed Apr 24, 2024 1:47 am
by JohnBonnett88
Is there any other documentation, examples or advice on doing VO.GUI to Windows.Forms conversions?

Re: WinForms and DataBinding

Posted: Wed Apr 24, 2024 2:32 am
by wriedmann
Hi John,
the attachment is also available here:
https://www.riedmann.it/download/Winfor ... gApp.viaef
And I may point you to the material of my session in Memmingen about the GUI choices for VO programmers:
https://www.riedmann.it/download/GUI_Ch ... terial.zip
Wolfgang