compilazione di una colonna datagridview combobox con subsonico & vb.net
-
21-08-2019 - |
Domanda
Come dice il titolo, sto cercando di compilare una colonna casella combinata in un datagridview.
Ecco quello che ho finora:
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
Tutti i suggerimenti quanto a che cosa mi manca?
Grazie Tony W
Soluzione
ho suggerisco di vincolare il proprio Collection ad un BindingSource e quindi aggiungere il BindingSource al DataGridView (in modo da sapere la posizione)
Ma legando un ComboBoxCell dovrebbe essere più o meno semplice.
Diciamo che avete un tblCurrency DataTable contenente due colonne Id e nome. È necessario associare questo al vostro Colonna (presumo Colonna 0 ist tua DataGridViewColumn)
dgvcboPart.Columns(0).DataSource = tblCurrency
dgvcboPart.Columns(0).ValueMember = "Id"
dgvcboPart.Columns(0).DisplayMember = "Name"
Quindi è possibile impostare il DataPropertyName alla proprietà nel vostro DataSource.
dgvcboPart.Columns(0).DataPropertyName = "Currency_Id"
Be carful, tblCurrency.Id e Currency_Id devono essere dello stesso tipo (Int32 e UInt32 non funziona) e si ottiene un brutto MessageBox con uno StackTrace completo se Currency_Id ha un valore che non è in tblCurrency (così si dovrebbe gestire l'evento DataError)
Altri suggerimenti
dgvcboPart.DataSource = lc
dgvcboPart.DataBind()
dovuto chiamare il metodo DataBind per la magia che accada!