我正在使用Spring4d TObjectDataset
和从TListBase<TObject>
派生的自定义IObjectList
适配器。我使用这个SOA作为基础,尽管它使用TObjectList
并且我使用TCollection
。
我将 TObjectDataset.Datalist
属性设置为此适配器的新实例。但是,如果我将条目直接添加到底层 TCollection 中并点击 TObjectDataset.Refresh
,似乎TObjectDataset
不会查询基础TCollection
以获取新记录(它不会查询GetCount
过程(。不过,如果我TObjectDataset.Close
那么TObjectDataset.Open
,将显示新记录。
TObjectDataset
中是否有刷新条目的机制?
我想在我的自定义TCollection
类上实现 INotifyCollectionChanged<T>
接口。IObjectList
适配器将订阅更改通知,并自行更新。但也许有一种内置的方法可以做到这一点?
将 TrackChanges
属性设置为 True
。这会导致 ODS 将 OnChanged 处理程序添加到列表中。
如果要将项目添加到不通知适配器任何更改的列表中,尽管您不走运,需要添加到适配器列表或以不同的方式解决它。
PS:可能是TObjectDataSet.InternalRefresh
缺少继承的调用 - 试试看。