C # WinForms BindingList & DataGridView - запрет EDIT предотвращает создание новой строки? Как я могу решить это? - PullRequest
2 голосов
/ 05 октября 2009

Что касается моего использования DataGridView с BindingList, я должен был отключить редактирование текущих строк, но разрешить добавление новых строк. Проблема, с которой я столкнулся, заключается в том, что, когда я запрещаю редактирование, это, кажется, не позволяет добавить новый элемент строки, так как при добавлении таблицы в ячейку для этой новой строки, по-видимому, не разрешается редактирование ???

Знаете, как обойти это? Раздел моего кода ниже:

   BindingSource bs = new BindingSource();
   bList = new BindingList<Customer>();
   bList.AllowNew = true;
   bList.AllowEdit = false;

   // Fill bList with Customers
   bList.Add(new Customer("Ted"));
   bList.Add(new Customer("Greg"));
   bList.Add(new Customer("John"));

   bs.DataSource = bList;
   dataGridView1.DataSource = bs;

спасибо

1 Ответ

4 голосов
/ 05 октября 2009

Вместо того, чтобы бороться с источником, возможно, попросите DataGridView озвучить:

dataGridView1.DataSource = bs;
dataGridView1.ReadOnly = true;
dataGridView1.CurrentCellChanged += delegate 
{
    DataGridViewRow row = dataGridView1.CurrentRow;
    bool readOnly = row == null ||
        row.Index != dataGridView1.NewRowIndex;
    dataGridView1.ReadOnly = readOnly;
};

(и не устанавливать AllowEdit в списке)

...