poblar una columna DataGridView cuadro combinado con subsónica y vb.net
-
21-08-2019 - |
Pregunta
Como dice el título, estoy tratando de llenar una columna de cuadro combinado en un DataGridView.
Esto es lo que tengo hasta ahora:
Dim lc As System.Web.UI.WebControls.ListItemCollection = _
DataAccess.Part.GetListItems()
dgvcboPart.DataSource = lc
' This is a standalone combo box and it works ok
cboTest.DataSource = lc
Cualquier sugerencia en cuanto a lo que me falta?
Gracias Tony W
Solución
La primera vez que sugiero que ates de su colección a un BindingSource y luego añadir el BindingSource a DataGridView (para que sepa la posición)
Sin embargo, atando un ComboBoxCell debe ser bastante sencillo.
Digamos que usted tiene un tblCurrency DataTable que contiene dos columnas ID y NAME. Usted tiene que unir esto a su columna (supongo Columna 0 ist su DataGridViewColumn)
dgvcboPart.Columns(0).DataSource = tblCurrency
dgvcboPart.Columns(0).ValueMember = "Id"
dgvcboPart.Columns(0).DisplayMember = "Name"
A continuación, se puede establecer el DataPropertyName de la Propiedad en el origen de datos.
dgvcboPart.Columns(0).DataPropertyName = "Currency_Id"
Sé carful, tblCurrency.Id y Currency_Id tienen que ser del mismo tipo (Int32 y UInt32 no funciona) y se obtiene un cuadro de mensaje con una desagradable StackTrace completo si Currency_Id tiene un valor que no está en tblCurrency (por lo que debe controlar el evento DataError)
Otros consejos
dgvcboPart.DataSource = lc
dgvcboPart.DataBind()
tiene que llamar al método DataBind para que la magia suceda!