我在父子关系中有Companies
和Contracts
,在winforms应用中的两个DataGridViews中显示。它们都与实体模型的集合绑定。
如何添加新合约?
如果我这样做,
Dim c as Company = CompaniesBindingSource.Current
c.contracts.Add(New Contract())
context.SaveChanges()
网格不会刷新(即使我在BindingSource上调用.Refresh()
或.ResetBindings()
。我必须离开所选公司并返回它,以便网格刷新。
如果我执行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 :(得分:0)
这对我有用:
CompaniesBindingSource.ResetCurrentItem()
重新计算Contracts
属性,并自动刷新合约网格。