在WinForm下怎样解决多个控件绑定同一数据源的问题(急)

hawkalw 2004-11-02 12:47:57
使用了一个TabControl控件,在每个Page上都有DataGrid,现在有几个DataGrid的DataSource是同一个表,如果绑定到同一个Source上,就会出现有些事件在一些页面上不响应,而有的页面上响应,我用PositionChange事件,在一个页面上响应,另一个不响应,但当把每个页面都打开一下,就又都响应了,这是怎么回事,期待高手解决!!!!
...全文
167 点赞 收藏 12
写回复
12 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
yidengjiang 2004-11-04
在2003IDE环境中DataGrid显示不出DisplayMember和ValueMember两个属性,你不要管那么多直接写就可以了,可以通过编译的。如果是用VB写的话就会出现这两个属性,我也想不通为什么MS在C#中就不显示这两个,不单这两个,我还发现有几个地方VB有显示而C#没显示。
但是不管怎么样,只要在MSDN中可以查到此属性,就放心的写,肯定可以通过编译的
回复
raulredondo 2004-11-04
可以尝试建好几个dataview,然后每个dataview的数据源都是一样的,然后每个datagrid绑定到不同的dataview上面。
回复
yk1028 2004-11-04
try

DataGrid1.DataSource = _dataSet.Tables["orders"].Copy();
回复
xiaoslong 2004-11-04
帮你顶
回复
redebug 2004-11-04
给你写得例子关键就是给2个DataGrid(绑定同一个数据源)的BindingContext不同的实例对象,应该可以解决你的问题,你可以试一下!
回复
redebug 2004-11-04
呵呵,例子是一时写的,写得不对,这样:

BindingContext bc = new BindingContext();

this.DataGrid1.BindingContext = bc;

DataGrid1.DataSource = _dataSet.Tables["orders"].DefaultView;


bc = new BindingContext();

this.DataGrid2.BindingContext = bc;

DataGrid2.DataSource = _dataSet.Tables["orders"].DefaultView;
回复
hawkalw 2004-11-04
TO: redebug(雷老虎)
不好意思,我在DataGrid上怎么找不以DisplayMember和ValueMember这两个属性
回复
redebug 2004-11-04
试一下:

BindingContext bc = new BindingContext();

this.DataGrid1.BindingContext = bc;

DataGrid1.DataSource = _dataSet.Tables["orders"];

DataGrid1.ValueMember = "CustomerID";

DataGrid1.DisplayMember = "CustomerID";



bc = new BindingContext();

this.DataGrid2.BindingContext = bc;

DataGrid2.DataSource = _dataSet.Tables["orders"];

DataGrid2.ValueMember = "CustomerID";

DataGrid2.DisplayMember = "CustomerID";
回复
hawkalw 2004-11-04
此问题困扰好长时间了,哪位高手救救急吧。
回复
hawkalw 2004-11-02
WinForm下的
回复
swiminfish_9999 2004-11-02
你用的PositionChange事件不响应我有一个笨办法, 你可以把 Position 向下移一个,或者向上移一个,然后再回过去 . . 我遇到过类似的问题, 找不到别的办法了,就只好用这个笨办法解决了 ^_^
回复
jiezhi 2004-11-02
winform or webform
回复
相关推荐
发帖
C#
创建于2007-09-28

10.5w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2004-11-02 12:47
社区公告

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