DataSource为空时如何继续相关的BindingSources

时间:2015-02-06 09:56:07

标签: c# data-binding datasource bindingsource

我想征求意见。我遇到这种模式的情况:

  • BindingSource headOfFamillyBS,其DataSources是对象列表List<FamillyResources>
  • 此对象FamillyResources具有List<FreeTimeActivities>
  • 等属性
  • 我还有两个其他BindingSources,一个freeTimeActivitiesBS,它们通过DataBinding以这种方式解决了DataSource和DisplayMember:

    this.freeTimeActivitiesBS.DataBindings.Add("DataSource", headOfFamillyBS, "view_frTmActvts");
    

大于

this.freeTimeActivitiesBS.DisplayMember = "view_shortName";

问题是: 当我调用List<FamillyResources>方法.Clear()时,它没有项目,而且属性view_frTmActvts(返回列表)当然是空的(因为源列表中没有项目 - 在 headOfFamillyBS 中) 。比BindingSource freeTimeActivitiesBS 抛出异常:

  

DataBinding无法在列表中找到适合所有人的行   绑定。

  1. 是否有任何优雅的方式,如何处理情况,顶级 BindingSource的LIST属性,其他BindingSource作为他们的DataSource,是否为空?
  2. 我应该手动处理 headOfFamillyBS ListChanged 事件并检查List是否为空,而不是清除绑定到所有其他连接的 BindigSources?如果源列表中有houndreds或数千个项目,这将非常慢。
  3. 感谢您的任何建议!

0 个答案:

没有答案