DataGrids con columnas ComboBox basados en ArrayList

27/10/2004 - 22:45 por Francisco Gomez | Informe spam
Estoy desesperado...

Necesito incluir una columna de ComboBoxes en un DataGrid, en WindowsForms.

Hay un artículo MUY bueno, en

http://msdn.microsoft.com/msdnmag/i...fault.aspx

donde se crea un tipo DataGridComboBoxColumn, GENIAL, pero... despues de
perder un día entero probando, creo que este control asume que el DataSource
tanto del DataGrid como del ComboBox han de ser DataViews. No permite tampoco
que el ComboBox tenga de ninguna manera la propiedad DataSource en nulo (da
error durante la ejecución). Y mi caso es que necesito incluir combobox
basados en ArrayList, montados en DataGrids TAMBIEN basados en ArrayList.

¿Me estoy equivocando en algo o es que ciertamente este componente no admite
los ArrayList? Si es cierto ésto último, ¿podría algun buen experto decirme
que modificaciones debería incluir en el componente (en el link está el
fuente, y es cortito) para soportar ArrayLists? ¿O existe una manera simple
de convertir ArrayLists en DataSets que me permita solventar el problema?

Gracias de antemano
 

Leer las respuestas

#1 Francisco Gomez
28/10/2004 - 00:55 | Informe spam
A ver si te entiendo...

¿Me quieres decir que ESTE DataGridComboboxColumn admite que ponga una
ArrayList como DataSource del ComboBox incrustado?

¿COMO?

Ya he probado...

ArrayList miLista= new ArrayList( );
(inicializo el arraylist)
DataGridComboBoxColumn micolumna = new DataGridComboBoxColumn( )
micolumna.ComboBox.DataSource=miLista;

Compila parfectamente, pero en tiempo de ejecución me da error. Dice que no
es válida la conversión de tipos, y no me indica donde. Supongo que será
dentro del código fuente del componente.

Sé que:
ComboBox miCombo = new ComboBox( );
micombo.DataSource=miLista;

Esto no da error. Sé que puedo inicializar sin problemas un ComboBox normal
con un ArrayList. Pero el incrustado dentro del DataGridComboBoxColumn no
funciona. Debe ser algo de como está construido el componente.

¿Me podrías dar un ejemplo de código que funcione?

Gracias.


"Jose Luis Manners" escribió:

Sí, sí puedes agregar (binding) un objeto ArrayList al DataGrid y al
ComboBox.

Saludos,

Jose Luis Manners, MCP
http://blogs.geekdojo.net/jmanners

"Encuentra felicidad en tu trabajo o nunca serás feliz."
Cristóbal Colón

"Francisco Gomez" wrote in
message news:
> Estoy desesperado...
>
> Necesito incluir una columna de ComboBoxes en un DataGrid, en
WindowsForms.
>
> Hay un artículo MUY bueno, en
>
> http://msdn.microsoft.com/msdnmag/i...fault.aspx
>
> donde se crea un tipo DataGridComboBoxColumn, GENIAL, pero... despues de
> perder un día entero probando, creo que este control asume que el
DataSource
> tanto del DataGrid como del ComboBox han de ser DataViews. No permite
tampoco
> que el ComboBox tenga de ninguna manera la propiedad DataSource en nulo
(da
> error durante la ejecución). Y mi caso es que necesito incluir combobox
> basados en ArrayList, montados en DataGrids TAMBIEN basados en ArrayList.
>
> ¿Me estoy equivocando en algo o es que ciertamente este componente no
admite
> los ArrayList? Si es cierto ésto último, ¿podría algun buen experto
decirme
> que modificaciones debería incluir en el componente (en el link está el
> fuente, y es cortito) para soportar ArrayLists? ¿O existe una manera
simple
> de convertir ArrayLists en DataSets que me permita solventar el problema?
>
> Gracias de antemano



Preguntas similares