У меня было много вопросов, связанных с привязкой datagrid к datasource. У меня был DataGridView, к которому я устанавливаю DataSource из спискаДобавить строку после установки DataSource в Datagridview
List<Myclass> li = new List<MyClass>();
MyClass O = new MyClass();
O.Name = "Aden";
O.LastName = "B";
O.Id = 12;
li.Add(O);
O = new MyClass();
O.Name = "Li";
O.LastName = "S";
O.Id = 22;
li.Add(O);
Mydgv.DataSource = li;
Где MyClass является
public Class MyClass
{
public string Name {get; set;}
public string LastName {get; set;}
public decimal Id {get; set;}
}
теперь хотят, чтобы добавить новую строку в Мой DataGridView
DataGridViewRow row = (DataGridViewRow)yourDataGridView.Rows[0].Clone();
row.Cells[0].Value = "XYZ";
row.Cells[1].Value = 50.2;
Mydgv.Rows.Add(row);
Но это это невозможно, потому что Datasource of Datagrid привязан к списку li. Итак, мой первый вопрос: как я могу это сделать?
Мой второй вопрос: Для этого я сделал решение, чтобы изменить список List li и Добавить новую строку данных, а затем установить его в datasource datagrid, но я думаю, что это не приемлемое решение, решение?
Даже пытался сделать это CurrencyManager
CurrencyManager currencyManager1 = (CurrencyManager)BindingContext[MyGrid.DataSource];
currencyManager1.SuspendBinding();
DataGridViewRow row = (DataGridViewRow)yourDataGridView.Rows[0].Clone();
row.Cells[0].Value = "XYZ";
row.Cells[1].Value = 50.2;
Mydgv.Rows.Add(row);
currencyManager1.ResumeBinding();
Как я знаю, что через него я подвесил Связывание DataGrid, чтобы обеспечить форматирование к сетке, как я выступал в одном из моего поста Make Row Visible false. Но почему это не работает здесь, добавляя строку в datagrid?
Решение, которое я предложил, чтобы добавить новые строки в существующую границу DataGridView. Если вы хотите решить любую другую проблему, связанную с этим, сообщите мне. Я не получил ваше полное требование, кроме того, на которое я ответил, из вашего вопроса. – Anoop
то, что вы сделали, это обновление DataGridView из списка по списку обновлений, но я хочу обновить свой datgrid, а не обновлять список, добавив строку в datagrid вручную. –
В чем разница между этими способами. В любом случае вы хотите добавить новые строки в datagrid даже после привязки данных, и это будет сделано. Как только элемент управления привязан к базе данных, вы не можете обновить его представление. Для этого необходимо изменить исходные данные. – Anoop