数据绑定问题求解~~

duanzhi1984 2011-01-25 11:33:58

窗体A中有四个数据表,想把窗体B中的控件也绑定到此窗体的数据表中,只能通过数据绑定的办法.

我定义了四个BindingSource

如下:
public DataTable tbADMDBA;//查询信息
public DataTable tbADMDBB;//参数信息
public DataTable tbADMDBC;//显示信息
public DataTable tbADMDBD;//关联信息

BindingSource bindADMDBA = new BindingSource();
BindingSource bindADMDBB = new BindingSource();
BindingSource bindADMDBC = new BindingSource();
BindingSource bindADMDBD = new BindingSource();

在窗体B中打开时再将此数据源赋予B。

DataCatalogEditFrm frm = new DataCatalogEditFrm();

frm.ADMDBASource = this.bindADMDBA;
frm.ADMDBBSource = this.bindADMDBB;
frm.ADMDBCSource = this.bindADMDBC;
frm.ADMDBDSource = this.bindADMDBD;
frm.Show();

以上是我的代码,我觉得太麻烦,每个窗体都必须定义四个绑定源, 能有更好的方法吗?

以简化代码,或其他更好的方法.



...全文
78 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
cxx1997 2011-01-25
  • 打赏
  • 举报
回复
用数组 List<BindingSource>
  • 打赏
  • 举报
回复
最简单的办法就是提炼出一个函数,为此,要让主窗体和窗体B有共同的数据源接口
主窗体和窗体B要么有共同的父类,要么有共同的接口,如:
interfase IMyDataSource
{
ADMDBASource{get;set;}
..........
}
class MainForm:Form,IMyDataSource
class FormB:Form,IMyDataSource
void setDataSource(IMyDataSource ids)//假如你的主窗体和DataCatalogEditFrm都有共同的父类Form1
{
ids.ADMDBASource = this.bindADMDBA;
ids.ADMDBBSource = this.bindADMDBB;
ids.ADMDBCSource = this.bindADMDBC;
ids.ADMDBDSource = this.bindADMDBD;
}
主窗体中这样调用:
this.setDataSource(this);
窗体B的:
DataCatalogEditFrm frm = new DataCatalogEditFrm();
setDataSource(frm);

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧