当前位置:  开发笔记 > 编程语言 > 正文

在一个DataTable上使用多个BindingSource

如何解决《在一个DataTable上使用多个BindingSource》经验,为你挑选了2个好方法。

我有一个DataTable,它有一个名为[Invalid]的布尔列.我需要将此数据除以此无效列 - 有效行可以编辑,无效行不能.我原来的计划是使用两个BindingSources并设置Filter属性([无效] ="假",例如),发挥了送到我的手上,因为我有两个DataGridViews,所以我需要两个BindingSources反正.

这不起作用:BindingSources设置与DataTable关联的Filter属性,因此两个BindingSource都保存相同的数据.我将不得不从数据库中取两次,或者我可以用我拥有的对象做我想做的事情吗?



1> Danny French..:

我不认为你可以按照你希望的方式去做.

您可以使用同一数据表的两个不同的数据视图,并将您的datagridviews绑定到那些?



2> Joe..:

绑定到DataTable时,您实际上绑定到其默认视图(DataTable.DefaultView).当您设置BindingSource的Filter属性时,您将设置默认视图的Filter属性,覆盖其他BindingSource设置的Filter.

所以deadcat的答案是正确的:你需要绑定到DataTable上的两个不同的视图(如果你愿意,其中一个可以是DefaultView):

bindingSource1.DataSource = myDataTable;
bindingSource2.DataSource = new DataView(myDataTable);

要么

bindingSource1.DataSource = new DataView(myDataTable);
bindingSource2.DataSource = new DataView(myDataTable);

推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有