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

StackOverflow https://stackoverflow.com/questions/815043

  •  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; есть мысли для других сценариев.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top