有谁知道Delphi XE(我在这里说的是VCL)是否有任何与数据感知控件一起使用的泛型集合类?换句话说,是否有任何泛型类,如TObjectList<>可以分配给TDataSource.DataSet或类似的东西?
谢谢。
担
是的,你可以使用ObjectDataSet概念,我认为你最终将不得不根据链接的示例代码作为起点来实现自己。
示例代码演示如何融合常规非泛型 TObjectList 和 TDataSet 的概念。它使用 RTTI 提供您希望附加到它的任何对象类型的任何列表。 它使用 RTTI,不需要使用泛型,而是要求您从 TPersistent 继承。
不好的一面是,我已经用过它了,我再也不会用它了。 生成的代码一团糟,速度很慢,模型很糟糕。 下次,我会远离数据感知控件,而只是使用带有虚拟控件的容器,如VirtualTreeView和ExGridView。
我认为您没有理由不能从上面的代码开始作为基础,并将泛型与数据绑定相结合,但我可以看到很多您不应该这样做的原因。
有另一种意见:
- 请参考Stefan Glienke的努力。他是有前途的DSharp的作者。更多关于他的博客。
- 指向DN4D(DotNet4Delphi)。
它们都可以按预期使用具有绑定功能的泛型集合类,这使得将数据公开给可视组件非常容易。