2014-01-14 2 views
0

У меня есть Companies и Contracts в отношениях родитель-потомок, показанный в двух DataGridViews в приложении winforms. Они оба связаны с наборами моделей Entity.Добавление нового объекта в связанный DataGridView

Как я могу добавить новый контракт?

  1. Если я сделаю это,

    Dim c as Company = CompaniesBindingSource.Current 
    c.contracts.Add(New Contract()) 
    context.SaveChanges() 
    

    сетка не обновляется (даже если я называю .Refresh() или .ResetBindings() на BindingSource. Я должен перейти от выбранной компании и обратно это, для сетки, чтобы обновить.

  2. Если я ContractsBindingSource.AddNew(), сетка обновляет, но данные не сохраняются в моем контексте сущности.

Примечание: моя коллекция договоров является собственностью на моей Company модели:

Public ReadOnly Property activeContracts As SortableBindingList(Of Contract) 
    Get 
     Dim list = New SortableBindingList(Of Contract) 

     For Each contract As Contract In contracts.Where(Function(c) c.isActive).ToList 
      list.Add(contract) 
     Next 

     Return list 
    End Get 
End Property 

Имеет ли это что-нибудь сделать с ним? Как я могу заставить собственность перепроверить?

ответ

0

Это работает для меня:

CompaniesBindingSource.ResetCurrentItem() 

Это пересчитали Contracts свойство, и автоматически обновлять сетку контрактов.

Смежные вопросы