【问题标题】:Synching databinding controls on complex winform在复杂的 Winform 上同步数据绑定控件
【发布时间】: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


    【解决方案1】:

    我会考虑创建您自己的事件,并让每个可以更改数据的地方都引发一个“已更改”事件,并且在您进行数据绑定的任何地方都为该事件添加一个处理程序,以确保它捕获事件并更新其当前视图.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-17
      • 2010-10-24
      • 2013-12-12
      • 1970-01-01
      • 2012-06-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多