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

È stato utile?

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!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top