DataGridViewComboBoxColumn не связывается правильно - PullRequest
1 голос
/ 10 января 2012

Я пытаюсь добавить поле со списком в таблицу данных и связать со списком данные и значение.Это то, что я делаю, и я получаю много исключений.Что я делаю не так?

        IList<string> houseNums= myTable.Select(x => house_num).ToList();

        dealersGridView.Columns.Clear();
        dealersGridView.DataSource = myTable;
        dealersGridView.Columns["id"].DisplayIndex = 1;
        dealersGridView.Columns["id"].HeaderText = "Field 1";
        dealersGridView.Columns["name"].DisplayIndex = 2;
        dealersGridView.Columns["name"].HeaderText = "Field 1";
        dealersGridView.Columns.Remove("house_num");
        DataGridViewComboBoxColumn column = new DataGridViewComboBoxColumn();
        column.Items.AddRange(new object[] { 1, 2, 3, 4, 5, 6, 7 });
        column.DisplayIndex = 8;
        column.HeaderText = "MyHeader";
        column.DataSource = houseNums;
        dealersGridView.Columns.Add(column);

Комбо-данные не привязываются, и я не вижу выбранные значения.Что не так? ..

1 Ответ

2 голосов
/ 10 января 2012

Я думаю, что одной из ваших проблем является то, что вы добавляете значения в коллекцию Items:

column.Items.AddRange(new object[] { 1, 2, 3, 4, 5, 6, 7 });

и затем вы снова устанавливаете свойство DataSource

column.DataSource = houseNums;

вам нужно сделать одно или другое, а не оба.

foreach (string e in houseNums) column.Items.Add(e);

или

column.DataSource = myTable.Select(x => house_num).ToList();

Вот статья и горячий пример для заполнения DataGridViewComboBoxColumn из List<T>.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...