我想使用依赖于TObjectList<>的TObjectDataset (System.Generics.Collections / Spring.Collections)但只有一个TObjectList(System.Contnrs)。除了迭代对象和构建新的TObjectList<>之外还有什么方法吗?让这个工作?最后,我想将TObjectList耦合到Objectdataset以便绑定到UI。
答案 0 :(得分:1)
你的问题有点不对劲。 Spring4d TObjectDataSet采用IObjectList
接口,该接口是IList<T>
的特化,其中T
为TObject
。
此合约与Contnrs.TObjectList
匹配。因此,“简单地”为实现TObjectList
的{{1}}创建一个包装类。我简单地引用了引号,因为这个接口有很多方法。您可以使用IObjectList
作为已经实现了所有方法的适配器的基类。然后你只需要覆盖一些(看看TListBase<T>
那些是哪些)。
要了解的一个重要细节是TList<T>
需要知道列表中对象的确切类别。这是通过TObjectDataSet
的{{1}}属性完成的。如果返回ElementType
,虽然这不是很有帮助。所以你需要覆盖那个方法。
编辑:以下是此类适配器类的完整代码:
IObjectList
答案 1 :(得分:0)
除了迭代对象和构建新的
TObjectList<T>
以使其工作之外,还有什么方法吗?
没有。这两种类型不兼容。