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

Preguntas similare

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



Respuesta Responder a este mensaje
#2 Jose Luis Manners
29/10/2004 - 20:51 | Informe spam
Hola Francisco, creo que estos articulos te pueden ayudar:

http://www.codeproject.com/cs/miscc...Column.asp
http://www.codeproject.com/cs/miscc...Zen.asp?df0&forumid1224


este último enlace te da más información sobre la clase DataGridColumnStyle:


http://msdn.microsoft.com/library/d...stopic.asp
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:
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
>
>
>
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida