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ó:

Mostrar la cita

Preguntas similares