DataGridView, привязанный к Linq to SQL, не показывает новые строки, добавленные в другое место в контексте БД
-
03-07-2019 - |
Вопрос
У меня есть DataGridView
привязка к выражению запроса LINQ to SQL. Я хочу, чтобы он был редактируемым для обновлений, но для вставок я хочу, чтобы пользователи использовали отдельные элементы управления под сеткой (текстовые поля, средства выбора даты и т. Д. - в настоящее время ни к чему не привязаны). У меня есть & Quot; Добавить & Quot; кнопка, которая создает объект класса сущности linq to sql на основе значений в элементах управления, а затем вызывает InsertOnSubmit()
. Когда я позже позвоню SubmitChanges()
, все обновления из сетки и все добавленные объекты будут правильно сохранены в базе данных. Р>
Моя проблема в том, что любые новые объекты не добавляются в сетку ни до, ни после вызова DataSource
. Я хотел бы, чтобы новые объекты были добавлены в сетку, как только они будут созданы. Кроме того, я хочу, чтобы элементы управления, расположенные под сеткой, использовались для вставки новых записей, а не для редактирования существующих, поэтому я не думаю, что они должны быть связаны с источником данных ... Каков наилучший способ сделать это? р>
Я попытался просто переустановить dataGridView.DataSource = db.<TableName>
для сетки (т. е. <=>, которая работает, но неуклюже, потому что она снова прокручивается до верхней части сетки - я уверен, что существует лучший метод. р>
(пожалуйста, извините за вопрос n00b, я очень новичок во всем этом .net: P)
Решение
Первое, что нужно попробовать, это GetNewBindingList () , но этот поток: " Пример кода канонического редактируемого представления данных Linq-SQL & Quot; есть мысли для других сценариев.