Не удалось добавить значения в столбец со списком в datagridview С#

У меня есть представление данных, в этом представлении данных я добавил два несвязанных столбца, один из которых представляет собой поле со списком, а второй - столбец типа текстового поля, кроме этого, у меня есть таблица данных для некоторых строк.

Я устанавливаю источник данных gird с моей таблицей данных, затем я пытаюсь добавить значения в элемент управления со списком, он должен отображать три значения (грузовик, самолет, корабль)

когда сетка загружается, она отображает магазины, но не имеет значения в поле со списком, я пробовал различные методы, такие как создание столбца данных со списком и добавление в него значений путем привязки таблицы данных, я также пытался добавить в столбец. элементы как в дизайнере, так и по коду, но поле со списком никогда не получает значения.

в качестве эксперимента я также пытаюсь добавить новый столбец с помощью приведенного ниже кода, но второй столбец также не показывает значений.

DataGridViewComboBoxColumn dgvcbc = new DataGridViewComboBoxColumn();
        DataTable dt = new DataTable();
        dt.Columns.Add("Media", typeof(string));
        dt.Rows.Add("Truck");
        dt.Rows.Add("Car");
        dgvcbc.DataSource = dt;
        dgvcbc.DisplayMember = "Media";
        dgvcbc.ValueMember = "Media";
        this.grdDestShops.Columns.Add(dgvcbc);

person alphaprolix    schedule 14.12.2012    source источник
comment
попробуй удалить dgvcbc.ValueMember = "Media";   -  person spajce    schedule 14.12.2012
comment
Я так и сделал, но результата нет.   -  person alphaprolix    schedule 14.12.2012
comment
Я попробовал ваш код выше, и все в порядке ... где вы разместили свои коды?   -  person spajce    schedule 14.12.2012


Ответы (2)


ваш код добавляет новый столбец! Если вы добавили столбцы ComboBox в режиме разработки, почему бы вам не найти его с помощью функции FindControl, а затем связать его?

person Alaa    schedule 14.12.2012
comment
Я знаю, что добавляю новый столбец, но даже в недавно добавленном столбце не отображаются значения.... - person alphaprolix; 14.12.2012
comment
Вы используете событие itemdatabound - person Alaa; 14.12.2012

Думаю, это решит вашу проблему..

namespace activator
{
    public partial class Form2 : Form
    {
        public Form2()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
       {
        DataTable dt = new DataTable();
        dt.Columns.Add("Media", typeof(string));
        dt.Rows.Add("Truck");
        dt.Rows.Add("Car");            
        ComboBox combo = new ComboBox();
        List<string> media=(from x in dt.AsEnumerable()
                            select x.Field<string>(0)).ToList();
        combo.DataSource = media;
        dataGridView1.Controls.Add(combo);           
    }
  }
}
person Bharath    schedule 14.12.2012
comment
вы не можете установить datatable в качестве источника данных для combobox..но вы можете установить список в качестве источника.. - person Bharath; 14.12.2012
comment
Он может установить DataTable как DataSource - person Alaa; 14.12.2012
comment
я сделал это для одного поля со списком. Если это DataGridViewComboBoxColumn, он может повторять одно и то же для каждой строки данных. - person Bharath; 14.12.2012