【发布时间】:2011-08-30 05:54:08
【问题描述】:
有谁知道 Delphi XE(我在这里说的是 VCL)是否有任何适用于数据感知控件的 Generic Collection 类?换句话说,是否有任何通用类,例如可以分配给 TDataSource.DataSet 的 TObjectList 或类似的东西?
谢谢。
丹
【问题讨论】:
标签: delphi generics binding data-aware
有谁知道 Delphi XE(我在这里说的是 VCL)是否有任何适用于数据感知控件的 Generic Collection 类?换句话说,是否有任何通用类,例如可以分配给 TDataSource.DataSet 的 TObjectList 或类似的东西?
谢谢。
丹
【问题讨论】:
标签: delphi generics binding data-aware
是的,您可以使用ObjectDataSet 概念,我认为您最终将不得不根据链接的示例代码作为起点来实现自己。
示例代码展示了如何融合常规非泛型 TObjectList 和 TDataSet 的概念。它使用 RTTI 提供您希望附加到它的任何对象类型的任何列表。它使用 RTTI,不需要使用泛型,而是要求您从 TPersistent 继承。
它的不好的一面是我已经用过它了,我再也不会用它了。生成的代码是一团糟,很慢,而且模型很糟糕。下一次,我会远离数据感知控件,而只使用带有虚拟控件(如 VirtualTreeView 和 ExGridView)的容器。
我看不出为什么你不能以上述代码为基础,并将泛型与数据绑定结合起来,但我可以看到很多你不应该这样做的原因。
【讨论】:
有其他意见:
他们都可以使用 Generic Collection 类,如预期的那样,具有 binding 功能,这使得将数据暴露给 visual components 非常容易。
【讨论】: