Как динамически увеличивать строки Datagridview и получать значения комбинированного списка сразу?

0
задан James Z 19 January 2019 в 10:03
поделиться

1 ответ

Похоже, ваш подход к работе с dataGridView немного неправильный. Вы пытаетесь работать со строками сетки данных напрямую, но идея состоит в том, чтобы иметь отдельную коллекцию, подобную List<Product>, и отображать ее через источник привязки.

1. Сначала создайте класс, представляющий ваш продукт, например:

public class Product
{
    public string Title { get; set; }
    public string Asin { get; set; }
}

2. Создайте список продуктов и добавьте их в этот список.

3. Нажмите на dataGridView в конструкторе форм и обратите внимание на кнопку со стрелкой в ​​правом верхнем углу. Нажмите на него и сгенерируйте новый источник данных, выбрав класс Product. DataGridBindingSource появится в нижней части дизайнера форм. Давайте предположим, что его зовут dataGridViewBindingSource.

4. Присвойте свою коллекцию продуктов источнику привязки:

dataGridViewBindingSource.DataSource = products;

Теперь вы можете изменить коллекцию продуктов и отобразить обновленные продукты в сетке, вызвав метод dataGridView.Refresh(). На этом этапе вам следует избавиться от исключения «Индекс вне диапазона», и у вас есть ссылка на коллекцию ваших продуктов, поэтому вам не нужно явно «извлекать» их из строк сетки данных.

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

0
ответ дан opewix 19 January 2019 в 10:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: