Delphi 过滤TcxTreeList
是否可以在TcxTreeList中有一个可选的过滤器,并且只显示满足列过滤条件的叶子(由用户选择,就像使用网格一样) 我认为这是可能的,但我似乎找不到如何Delphi 过滤TcxTreeList,delphi,devexpress,Delphi,Devexpress,是否可以在TcxTreeList中有一个可选的过滤器,并且只显示满足列过滤条件的叶子(由用户选择,就像使用网格一样) 我认为这是可能的,但我似乎找不到如何 Delphi XE上的ExpressQuantumTreeList 5.49TcxTreeList没有内置过滤功能。 我会在每次过滤器数据更改时重复树,并将节点的Visible属性设置为false。然后调用TcxTreeList的DataChanged方法刷新显示 我通常在提供者模式下使用DevExpress组件。 我有一个内部TList子体
Delphi XE上的ExpressQuantumTreeList 5.49TcxTreeList没有内置过滤功能。 我会在每次过滤器数据更改时重复树,并将节点的
Visible
属性设置为false。然后调用TcxTreeList的DataChanged
方法刷新显示
我通常在提供者模式下使用DevExpress组件。
我有一个内部TList子体,它保存我的项目。
在本例中,我可以有两个列表:TListAllItems和TListFilteredItems
我的TcxTreeList将显示TListFilteredItems中的项目。
当树列表首次填充时,两个列表将包含相同的项。
每当我筛选列表时,我都会从TListFilteredItems中删除/添加项目,并调用CustomDataController.DataChanged
。然后将不显示筛选出的项目,因为TListFilteredItems不包含这些项目
这不会占用太多内存,因为只有第一个列表TListAllItems才拥有这些项目,而另一个列表TListAllItems只保留指针,不会在删除时释放这些项目,也不会在添加时创建它们,而只是添加/删除指向内部TList对象的项目指针。您可能会在DevExpress论坛中得到(更好的)答案。他们由DevExpress员工监控。