заполнение столбца со списком datagridview с помощью subsonic и vb.net

StackOverflow https://stackoverflow.com/questions/865141

Вопрос

Как следует из названия, я пытаюсь заполнить столбец со списком в datagridview.

Вот что у меня есть на данный момент:

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

Есть какие-нибудь предложения относительно того, чего мне не хватает?

Спасибо, Тони w

Это было полезно?

Решение

Сначала я предлагаю вам привязать свою коллекцию к BindingSource, а затем добавить BindingSource в DataGridView (чтобы вы знали позицию)

Но привязка ComboBoxCell должна быть довольно простой.

Допустим, у вас есть DataTable tblCurrency, содержащий два столбца Id и Name.Вы должны привязать это к своему столбцу (я предполагаю, что столбец 0 — это ваш DataGridViewColumn)

     dgvcboPart.Columns(0).DataSource = tblCurrency
     dgvcboPart.Columns(0).ValueMember = "Id"
     dgvcboPart.Columns(0).DisplayMember = "Name"

Затем вы можете установить DataPropertyName для свойства в вашем источнике данных.

     dgvcboPart.Columns(0).DataPropertyName = "Currency_Id"

Будьте осторожны, tblCurrency.Id и Currency_Id должны быть одного и того же типа (Int32 и UInt32 не работают). И вы получите неприятный MessageBox с полным StackTrace, если Currency_Id имеет значение, которого нет в tblCurrency (поэтому вам следует обрабатывать DataError событие)

Другие советы

dgvcboPart.DataSource = lc
dgvcboPart.DataBind()

нужно вызвать метод привязки данных, чтобы произошло волшебство!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top