DataGridView, привязанный к Linq to SQL, не показывает новые строки, добавленные в другом месте в контекст БД

У меня есть DataGridView, привязанный к выражению запроса LINQ to SQL. Я хочу, чтобы его можно было редактировать для обновлений, но для вставок я хочу, чтобы пользователи использовали отдельные элементы управления под сеткой (текстовые поля, средства выбора даты и т. Д. - в настоящее время ни к чему не привязаны). У меня есть кнопка «Добавить», которая создает объект класса сущности linq to sql на основе значений в элементах управления, а затем вызывает InsertOnSubmit(). Когда я позже вызываю SubmitChanges(), все обновления из сетки и любые добавленные объекты правильно сохраняются в базе данных.

Моя проблема в том, что новые объекты не добавляются в сетку до или после вызова SubmitChanges(). Я хочу, чтобы новые объекты добавлялись в сетку сразу после их создания. Кроме того, я хочу, чтобы элементы управления под сеткой использовались только для вставки новых записей, а не для редактирования существующих записей, поэтому я не думаю, что они должны быть привязаны к источнику данных ... Как лучше всего это сделать?

Я попытался просто переустановить DataSource для сетки (например, dataGridView.DataSource = db.<TableName>, который работает, но неуклюже, потому что он снова прокручивается в верхнюю часть сетки - я уверен, что существует лучший метод.

(Прошу прощения за вопрос о n00b, я новичок во всем этом .net: P)


person Jon    schedule 02.05.2009    source источник


Ответы (1)


Первое, что нужно попробовать - это GetNewBindingList (), но эта ветка: "Editable-SQL canonical пример кода datagridview "есть некоторые мысли для других сценариев.

person Marc Gravell    schedule 02.05.2009