【发布时间】:2009-03-11 16:16:09
【问题描述】:
我有一个非常复杂的窗口窗体,其中包含使用强类型数据集和绑定源组件的 grandParent>Parent>Child 数据集的选项卡式表示。
使用 bindngsource 来降低雇佣关系是一种享受;我的问题是我有一些数据的多个“并行”视图(例如,第一个选项卡是开放作业的摘要视图,其他选项卡显示此数据的父视图和子视图)以及“查找”下拉列表。所有这些我都试图保持同步,以便更改孙记录将更新父绑定源,以及同步查找下拉菜单。
我正在努力让它正常工作;我有表单级别的属性来保存当前的工作和同步表单的例程,例如:
在 bindingsource.positionchanged 上:
SetCurrentDetailJob(Me.PKSitesJobsBindingSource)
这是:
Private Sub SetCurrentJob(ByVal JobBindingSource As BindingSource)
If JobBindingSource.Position > -1 Then
_CurrentJob = CType(CType(JobBindingSource.Current, DataRowView).Row, ARCallDataSet.JobsRow)
_CurrentSite = _CurrentJob.GetParentRow("PK_Sites_Jobs")
_CurrentCompany = _CurrentSite.GetParentRow("PK_Company_Sites")
End If
然后是执行此类操作的同步表单例程:
CompanyBindingSource.Position = CompanyBindingSource.Find("companyid", drsite.CompanyID)
我似乎永远无法完全避免某种连锁反应,即绑定源位置更改事件触发多次,从而导致绑定源不正确同步不一致。 我不确定处理这种同步逻辑的最佳方式。
其他人如何处理这个问题?
【问题讨论】:
标签: winforms data-binding