enlaze a datos

03/02/2006 - 08:27 por Oscar | Informe spam
Hola

Tengo un usercontrol que enlaza todos los textbox de un formulario con
bindings a datos. Para ello utilizo la siguiente funcion recursiva

Private Sub EnlazaCampo(x...)
If xControl.Controls.Count > 1 Then
'Bucle de los controles que están dentro del actual
For Each x In xControl.Controls
EnlazaCampo(x, linea, str) ' LLAMADA
RECURRENTE
Next
end if

If TypeOf xControl Is Windows.Forms.TextBox Or TypeOf xControl
Is Windows.Forms.RichTextBox Then
xControl.DataBindings.Add(New Binding("Text",
dvw_botonera, Enlace))
ElseIf TypeOf xControl Is Windows.Forms.CheckBox Or TypeOf
xControl Is Windows.Forms.RadioButton Then
xControl.DataBindings.Add(New Binding("Checked",
dvw_botonera, Enlace))
End If
End sub

El problema que tengo que que cada vez que hace un enlace crea una nueva
instancia
New Binding("Text", dvw_botonera, Enlace))
y esto genera un consumo de memoria que se va a acumulando y que no consigo
liberar. Se os ocurre como liberar este consumo o como hacer este código más
eficiente?

Saludos, Oscar

Preguntas similare

Leer las respuestas

#1 Eduardo A. Morcillo [MS MVP VB]
03/02/2006 - 15:06 | Informe spam
Si es el unico enlace que deben tener los controles por que limpias la
coleccion DataBindings antes de setear la nueva:

xControl.DataBindings.Clear()

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
http://mvp.support.microsoft.com/pr...4EF5A4191C
Respuesta Responder a este mensaje
#2 Racsus
03/02/2006 - 20:24 | Informe spam
El problema que tengo es que se queda basura en el recolector cada vez que
abro y cierro el formulario que contiene este usercontrol(el que enlaza los
datos con los objetos del formulario). Es como si no liberase, apesar de que
llamo al método dispose cada vez que cierro un formulario.

Porque puede ser?

Saludos, Oscar

"Eduardo A. Morcillo [MS MVP VB]" escribió:

Si es el unico enlace que deben tener los controles por que limpias la
coleccion DataBindings antes de setear la nueva:

xControl.DataBindings.Clear()

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
http://mvp.support.microsoft.com/pr...4EF5A4191C



Respuesta Responder a este mensaje
#3 Eduardo A. Morcillo [MS MVP VB]
03/02/2006 - 21:08 | Informe spam
Si no ves ninguna razon aparente para que queden objetos sin recolectar te
recomiendo uses el CLR Profiler para que hagas un seguimiento de que es lo
que queda en memoria y asi puedas resolver el problema.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
http://mvp.support.microsoft.com/pr...4EF5A4191C
Respuesta Responder a este mensaje
#4 Jesús López
04/02/2006 - 13:14 | Informe spam
La cuestión es que si no hay paginación ¿por qué preocuparse? Quizá se está
viendo un problema donde no lo hay.

Saludos:

Jesús López
MVP

"Eduardo A. Morcillo [MS MVP VB]" <emorcillo .AT. mvps.org> escribió en el
mensaje news:
Si no ves ninguna razon aparente para que queden objetos sin recolectar te
recomiendo uses el CLR Profiler para que hagas un seguimiento de que es lo
que queda en memoria y asi puedas resolver el problema.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
http://mvp.support.microsoft.com/pr...4EF5A4191C

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida