将新实体添加到绑定的DataGridView

时间:2014-01-14 16:33:22

标签: vb.net entity-framework

我在父子关系中有CompaniesContracts,在winforms应用中的两个DataGridViews中显示。它们都与实体模型的集合绑定。

如何添加新合约?

  1. 如果我这样做,

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

    网格不会刷新(即使我在BindingSource上调用.Refresh().ResetBindings()。我必须离开所选公司并返回它,以便网格刷新。

  2. 如果我执行ContractsBindingSource.AddNew(),网格会刷新,但数据不会持久存储到我的实体上下文中。

  3. 注意:我的合约集合是我的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
    

    这与它有什么关系吗?如何强制财产重新计算?

1 个答案:

答案 0 :(得分:0)

这对我有用:

CompaniesBindingSource.ResetCurrentItem()

重新计算Contracts属性,并自动刷新合约网格。