Visual Basic.NET - Como recuperar el binding agregado a databinding de un control

 
Vista:
sin imagen de perfil

Como recuperar el binding agregado a databinding de un control

Publicado por bernardo (1 intervención) el 03/08/2017 14:46:38
Hola buenas! soy nuevo en el foto!! en realidad soy usuario hace mucho, pero nunca tuve la oportunidad de escribir un post, Mi pregunta se basa en el problema que no anda bien la actualizacion de los datos "Binding" en los controles, cada vez que se realiza una edicion hay que especificar Endedit, para que los datos se modifiquen en el bindingsource tambien. Aqui un ejemplo pequeño
1
2
3
4
5
6
7
8
9
10
'Declaro lo siguiente 
Private promoseleccionadabinding As System.Windows.Forms.BindingManagerBase
public cantproductos as New textbox
public promociones as new bindingsource
' en load del formulario asigno los datos a "promociones" y la relacion del campo con el bindingmanager siguiente
promoseleccionadabinding = content(promociones, "promocionseleccionada")
cantproductos.DataBindings.Add(New Binding("Text", promociones, "promocionseleccionada.cantidaddeproductos", True, DataSourceUpdateMode.OnPropertyChanged, "0"))
' finalmente con un boton hago que los datos se guarden con el siguiente comando
promoseleccionadabinding.EndCurrentEdit()
' al cerrar el formulario guardo promociones a la base de datos pero eso no lo coloco porque lo que importa es esta parte

Ahora lo que me gustaria hacer es una funcione general que obtenga todos los binding de todos los controles del formulario, desde una subclase, y poder ingresar "EndCurrentEdit()"
por ejemplo
1
2
3
4
5
6
'declaro que se cuando se modifique el campo para por ejemplo este control llame a una sub
AddHandler cantproductos.TextChanged, AddressOf textbox_TextChanged
'en la sub ingreso el codigo para poder obtener el databinding para obtener el binding y realizar la actualizacion 
Private Sub textbox_TextChanged(sender As System.Object, e As System.EventArgs)
directcast (sernder, textbox).endcurrentedit '<--------- Esta parte es mi problema, siendo una funcion para el evento "Textchanged" de varios textbox, debo hacer un directcast, pero no se como llegar al binding del control para ejecutar "EndCurrentEdit()"
end sub
mi idea es utilizar una sub que sea común para todos los controles, y que sea independiente de cada campo, y poder crear todos los controles necesarios para el formularios, y tener la seguridad que van a correr todos con la misma sub, como en el ejemplo anterior, dentro de una clase aparte, bindingcontext no puedo usar sino es dentro del mismo formulario, por eso descarto el bindingcontext, necesito llegar con Directcast(sender, textbox) al binding del mismo textbox, espero que me puedan ayudar desde ya muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder