过滤一个TcxTreeList
是否可以在TcxTreeList中有一个可选过滤器,并且只显示符合该列过滤条件的叶子(可由用户选择,例如使用网格)。
我认为这是可能的,但我似乎无法找到如何...
Delphi XE上的ExpressQuantumTreeList 5.49
TcxTreeList没有内置的过滤功能。 我会重复每个过滤器数据更改树并将节点的Visible
属性设置为false。 之后,调用TcxTreeList的DataChanged
方法刷新显示。
我通常在提供者模式下使用DevExpress组件。 我有一个内部TList后裔,持有我的物品。 在这种情况下,我可以有2个列表:TListAllItems和TListFilteredItems。
我的TcxTreeList将显示来自TListFilteredItems的项目。 当TreeList第一次填充时,两个列表都会保存相同的项目。 每当我过滤我的列表,我会从TListFilteredItems删除/添加项目,并调用CustomDataController.DataChanged
。 然后过滤掉的项目将不会显示,因为TListFilteredItems不包含它们。
这不会占用太多的内存,因为只有第一个列表TListAllItems会拥有这些项目,而另一个只会保存指针,而不是在删除时释放项目,或者在添加时创建它们,而只是添加/删除项目的指针内部的TList对象。
链接地址: http://www.djcxy.com/p/31047.html下一篇: header filter does not work if column is initially hidden