2010-04-02 49 views
0

我有一个网格(DevExpress XtraGrid,如果有的话)绑定到LINQ to SQL实体属性。LINQ2SQL - 将结果绑定到网格 - 想要在不重新绑定的情况下反映更改?

gridItems.DataSource = purchaseOrder.PendingItemsGrouped; 

那么,是正确显示网格,我可以看到,正在等待购买的物品。 当purchaseOrder.PendingItemsGrouped得到改变时会出现问题......一旦发生这种情况,网格不会反映这些更改。

确切的程序如下: 用户从网格中选择一行,在特定的文本框中插入序列号,然后点击输入,从采购订单中有效地接收该项目并将其插入库存。

inventoryWorker.AddItemToStock(userSelectedItem, serialNumber); 

该商品被正确插入到库存中,但网格仍显示该商品,就好像它仍在等待接收。

我该如何解决这个问题? 难道我真的需要重新绑定电网,所以这些变化可以反映出来吗?

我甚至尝试,而不是:

gridItems.DataSource = ...; 

此:

gridItems.DataBindings.Add(new Binding("DataSource", purchase, "PendingItemsGrouped")); 

但未能解决问题。 非常感谢你的时间,

艾萨克。

OBS: 重新绑定网格的作品,但我的问题是......即使是正确的做事方式?我觉得我离开了正确的轨道。

回答

1

调用数据绑定实际上是正确的方法,当你考虑如何在webforms数据绑定工作。在数据绑定到对象的所有示例中,只要集合被修改,就会调用数据绑定。

它感觉错误的原因是因为它使用DataSourceControl更清洁,比如LinqDataSourceControlObjectDataSourceControl,这些东西都是为您处理的。

沿着这条道路可以帮助你的两件事是使用LinqDataSourceControl时,你可能需要重写各种-ing方法(选择,插入,删除)等,以便添加额外的过滤和逻辑。

想到的另一件事是http://multitierlinqtosql.codeplex.com/。尤其是自定义ObjectDataSource部分。

+0

感谢您的完整答案。 我很感激。 – 2010-04-02 19:48:27

1

我自己没有尝试过,但Bindable LINQ允许实现它。

+0

我感谢你的回答 - 这是否意味着除了使用Bindable LINQ之外,没有办法做到这一点? 谢谢! – 2010-04-02 18:17:58