DataBindings

19/07/2006 - 11:57 por frank | Informe spam
hola,
Tengo un formulario con un control enlazado así:

txtCiutat.DataBindings.Add("Text", DadesObra, "obra.Ciutat");

donde "DadesObra" es un dataSet que contiene una tabla llamada "obra".

en este mismo formulario, tengo un método público:

public void mostrar(int id)
{
carregaDades(1); //esto, carga el dataset con datos dependiendo del id
revincula();
}
private void revincula()
{
CurrencyManager cm = (CurrencyManager) BindngContext[DadesObra, "obra"];
cm.Position = 0;
cm.Refresh();
}

Desde otro formulario, llamo a mostrar(int id) para que me muestre otro
registro. Pero el formulario que contiene el campo de texto enlazado, nunca
me muestra los cambios.
Desde el método "revincula", si consulto los valores de cm, veo que la
coleccion "bindings" se mantiene entre llamadas,
y si hago (en revincula()):
DataRowView f = (DataRowView) cm.Current;
los valores que coge "f" son los correctos. Pero estos no se reflejan en el
textBox enlazado.

Añadir que en la tabla "obra" del DataSet "DadesObra" siempre hay una y solo
una fila.

Creo que me dejo algo, pero no sé que puede ser.
Alguna idea?

Grácias.
 

Leer las respuestas

#1 zero
19/07/2006 - 19:39 | Informe spam
hola frank.

hice un ejemplo para lo que tu dices y me funciona correctamente, lo que no
dice tu pregunta es donde asignas el databindings, yo siempre pongo las
instrucciones de databindings en el public del form despues del
InitializeComponent.

saludos

"frank" wrote:

hola,
Tengo un formulario con un control enlazado así:

txtCiutat.DataBindings.Add("Text", DadesObra, "obra.Ciutat");

donde "DadesObra" es un dataSet que contiene una tabla llamada "obra".

en este mismo formulario, tengo un método público:

public void mostrar(int id)
{
carregaDades(1); //esto, carga el dataset con datos dependiendo del id
revincula();
}
private void revincula()
{
CurrencyManager cm = (CurrencyManager) BindngContext[DadesObra, "obra"];
cm.Position = 0;
cm.Refresh();
}

Desde otro formulario, llamo a mostrar(int id) para que me muestre otro
registro. Pero el formulario que contiene el campo de texto enlazado, nunca
me muestra los cambios.
Desde el método "revincula", si consulto los valores de cm, veo que la
coleccion "bindings" se mantiene entre llamadas,
y si hago (en revincula()):
DataRowView f = (DataRowView) cm.Current;
los valores que coge "f" son los correctos. Pero estos no se reflejan en el
textBox enlazado.

Añadir que en la tabla "obra" del DataSet "DadesObra" siempre hay una y solo
una fila.

Creo que me dejo algo, pero no sé que puede ser.
Alguna idea?

Grácias.



Preguntas similares