2017-05-21 38 views
1

我正在使用Spring4d TObjectDataset以及从TListBase<TObject>派生的自定义IObjectList适配器。我使用this SOA作为基础,虽然它使用TObjectList,我使用TCollectionSpring4d - ObjectDataset刷新没有从底层IObjectList获取记录

我的TObjectDataset.Datalist属性设置为这个适配器的新实例。但是,如果我添加条目直接进入下面的TCollection,并创下TObjectDataset.Refresh,似乎TObjectDataset不会查询新记录的基本TCollection(它不查询GetCount程序).Though,如果我这样做TObjectDataset.Close然后TObjectDataset.Open中,显示新记录。

TObjectDataset是否有机制刷新条目?

我想实现我的自定义TCollectionINotifyCollectionChanged<T>接口。 IObjectList适配器将订阅更改通知,更新自身。但也许有一种内在的方式来做到这一点?

回答

2

设置TrackChanges属性True。这会导致ODS将OnChanged处理程序添加到列表中。

如果要添加项目,虽然你的运气了,需要以添加到适配器列表或不同解决它不进行任何更改通知适配器列表。

P.S:可能是TObjectDataSet.InternalRefresh缺少继承的呼唤 - 尝试了这一点。