Datagridview Winforms Добавить или удалить строки в режиме редактирования с привязкой коллекции - PullRequest
1 голос
/ 12 марта 2011

В моем представлении данных я связываю Список объектов с именем «ProductLine». Но, к сожалению, при таком подходе я не могу «добавить» или «удалить» строки в сетку данных в режиме редактирования. Когда я создаю новый новый порядок, я могу добавлять или удалять строки, но как только я сохраняю и пытаюсь открыть его в «Редактировать», он не позволяет мне «Добавить» или «Удалить» (через клавиатуру).

Есть идеи?

Вот код для этого:

Если это свежий Орден, тогда я делаю что-то вроде этого:

private void Save(){
   for (int i = 0; i <= dtgProdSer.RowCount - 1; i++)
   {
      if ((itemList != null) && (itemList.Count > i))
           productLine = itemList[i];
      else
           productLine = new ProductLine();
      productLine.Amount = Convert.ToDouble(dataGridViewTextBoxCell.Value);
    }
}

И если это Edit, то в Form_Load я проверяю ProductId NON Zero, тогда я делаю следующее:

private void fillScreen{
    dtgProdSer.DataSource = itemList;
}

Но при этом я не могу добавлять или удалять строки в режиме редактирования.

Любой совет приветствуется.

1 Ответ

3 голосов
/ 13 марта 2011

Вы не показали, что такое itemList типа, но я собираюсь предположить, что это не ObservableCollection.В этом случае вам нужно обернуть свой список в источник привязки:

        var list = new List<ProductLine>(5);
        list.Add(new ProductLine { Amount = list.Count });
        list.Add(new ProductLine { Amount = list.Count });
        list.Add(new ProductLine { Amount = list.Count });
        list.Add(new ProductLine { Amount = list.Count });
        list.Add(new ProductLine { Amount = list.Count });

        var bs = new BindingSource {DataSource = list };
        dataGridView1.DataSource = bs;

FWIW, это хорошо освещенная проблема.На большинство ваших вопросов о DataGridView, вероятно, будет дан ответ qucker, просматривая соответствующий раздел в правой части экрана.Для новых вопросов, поиск SO является хорошим первым шагом.

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