| Paolo Fornari |
Come realizzare uno user control che supporta il binding
Ciao a tutti,
ho già scritto sul forum msdn inglese senza successo spero di essere più fortunato qui. Sto cercando di realizzare uno user control che supporti il binding. Lo scopo è quello di automatizzare la ricerca e decodifica di un soggetto anagrafico. Questo user control deve contenere più caselle di testo e per ognuna deve esporre una proprietà che sia bindabile. Per farlo ho impostato l'attributo Bindable su ogni proprietà e sollevo un PropertyChangedEventHandler nella property Set. Credo che sia il modo corretto per farlo. Ecco un esempio di codice: <Bindable(True, BindingDirection.TwoWay)> _ Public Property Codice() As String Get Return txtCodice.Text End Get Set(ByVal value As String) Dim ppe As PropertyChangedEventArgs = New PropertyChangedEventArgs("Codice") OnValueChanged(ppe) txtCodice.Text = value End Set End Property Il problema è che quando utilizzo lo user control, a runtime, questo non mi aggiorna la datasource, o meglio, mi aggiorna solo la prima proprietà aggiunta alla collezione DataBindings dello User control, sia che la aggiunga io a mano oppure che lo faccia il designer passando per una bindingsource. Me.UcSoggettoAnagrafico1.DataBindings.Add(New System.Windows.Forms.Binding("Codice", Me.BindingSource1, "Codice", True)) Me.UcSoggettoAnagrafico1.DataBindings.Add(New System.Windows.Forms.Binding("Conto", Me.BindingSource1, "Conto", True)) Me.UcSoggettoAnagrafico1.DataBindings.Add(New System.Windows.Forms.Binding("Gruppo", Me.BindingSource1, "Gruppo", True)) Le altre proprietà della datasource non vengono aggiornate. Come datasource utilizzo delle entità custom. Ho notato che se al posto della entità custom utilizzo una datatable il tutto funziona perfettamente! Spero di essere riuscito a spiegare correttamente il problema.. Qui ci sono i link alle discussioni sulle quali ho postato in cui mi sembrava ci fosse lo stesso problema. http://social.msdn.microsoft.com/Forums/en/winformsdatacontrols/thread/23344424-1851-416f-8cef-143e54b5a4c7 http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/e3766a4a-162b-4693-b7b2-d81708759f1b http://social.msdn.microsoft.com/Forums/en/winformsdatacontrols/thread/a723fdf8-02c6-4d61-96f0-2271deecadbb Addirittura nel terzo link il moderatore dice: 'There is some problem with the DataBinding product. We need to check it with the product team.' e poi più nulla, però io stento a credere che non si possa realizzare uno user control bindabile con + caselle di input... Grazie in anticipo a tutti. Paolo |