ArrayList 'binded' a un DataGrid sincronizado con CurrencyManager

29/10/2004 - 11:10 por Francisco Gomez | Informe spam
En otro post he comentado una solución para sincronizar (actualizar) un
Datagrid cuando cambiamos algún valor de la colección (no de un DataTable o
un DataView) asociada al mismo.

El código lo podeis encontrar aquí:

http://www.akadia.com/services/dotn...agrid.html

Básicamente se trata de actualizar el objeto CurrencyManager relacionado con
el datagrid

ArrayList comparaciones; //ArrayList de estructuras Comparacion
dataGrid1.SetDataBinding(comparaciones,"");


comparaciones.Add(comparaciones.Add(new Comparacion ("Nombre", "=",
"Pedro")));

CurrencyManager cm = (CurrencyManager)
this.dataGrid1.BindingContext[comparaciones];
if (cm != null)
{
cm.Refresh();
}

Pues bien... A mi no me funciona! Al obtener el cm, si miro la propiedad
List, me aparece un último elemento espúreo de tipo Int32, que me genera este
mensaje:

"Excepción no controlada del tipo
'System.Reflection.TargetInvocationException' en system.windows.forms.dll
Información adicional: El descriptor de acceso de la propiedad 'Campo'
inició la excepción 'El objeto no coincide con el tipo de destino.' en el
objeto 'System.Int32'"

¿Alguien me puede decir por qué falla?
 

Leer las respuestas

#1 Francisco Gomez
31/10/2004 - 09:30 | Informe spam
Falsa alarma...

comparaciones.Add(comparaciones.Add(new Comparacion ("Nombre", "=",
"Pedro")));

estaba mal. Ya esta arreglado.

comparaciones.Add(new Comparacion ("Nombre", "=", "Pedro"))

"Francisco Gomez" escribió:

En otro post he comentado una solución para sincronizar (actualizar) un
Datagrid cuando cambiamos algún valor de la colección (no de un DataTable o
un DataView) asociada al mismo.

El código lo podeis encontrar aquí:

http://www.akadia.com/services/dotn...agrid.html

Básicamente se trata de actualizar el objeto CurrencyManager relacionado con
el datagrid

ArrayList comparaciones; //ArrayList de estructuras Comparacion
dataGrid1.SetDataBinding(comparaciones,"");


comparaciones.Add(comparaciones.Add(new Comparacion ("Nombre", "=",
"Pedro")));

CurrencyManager cm = (CurrencyManager)
this.dataGrid1.BindingContext[comparaciones];
if (cm != null)
{
cm.Refresh();
}

Pues bien... A mi no me funciona! Al obtener el cm, si miro la propiedad
List, me aparece un último elemento espúreo de tipo Int32, que me genera este
mensaje:

"Excepción no controlada del tipo
'System.Reflection.TargetInvocationException' en system.windows.forms.dll
Información adicional: El descriptor de acceso de la propiedad 'Campo'
inició la excepción 'El objeto no coincide con el tipo de destino.' en el
objeto 'System.Int32'"

¿Alguien me puede decir por qué falla?

Preguntas similares