Apache flex Flex,使用ITreeDataDescriptor筛选树,无需重新加载并关闭所有节点

Apache flex Flex,使用ITreeDataDescriptor筛选树,无需重新加载并关闭所有节点,apache-flex,tree,filtering,Apache Flex,Tree,Filtering,使用Flex4并使用ITreeDataDescriptor实现过滤。 过滤按预期工作,如下代码段所示 但是,我正在尝试创建一个按需类型的过滤器,其中用户将在TextInput中键入搜索子句,当用户键入时,树节点将被动态过滤 我现在的实现是让用户单击搜索按钮,然后重新应用dataDescriptor,然后重新加载数据。一个大问题是,在再次设置数据提供者之后,整个树都会崩溃 对如何实现按需过滤有何建议 var dataFilter:ServicePricingFilter = new MyFilte

使用Flex4并使用ITreeDataDescriptor实现过滤。 过滤按预期工作,如下代码段所示

但是,我正在尝试创建一个按需类型的过滤器,其中用户将在TextInput中键入搜索子句,当用户键入时,树节点将被动态过滤

我现在的实现是让用户单击搜索按钮,然后重新应用dataDescriptor,然后重新加载数据。一个大问题是,在再次设置数据提供者之后,整个树都会崩溃

对如何实现按需过滤有何建议

var dataFilter:ServicePricingFilter = new MyFilter();
dataFilter.searchString = this.txtSearchKeyword.text;
this.treeService.dataDescriptor = new MyDataDescriptor(dataFilter);
this.treeService.dataProvider = getTreeData();

我认为您不应该每次都设置dataprovider,而应该使用ListCollectionView类ArrayCollection、XMLListCollection等可用的filterFunction属性。 按需过滤是通过使用ITreeDataDescriptor和filterFunction完成的。 在SearchTextInput的keyup事件中,调用树上的invalidateList函数

请参阅以下文章提供的源代码

使用dataDescriptor和filterFunction对该链接进行比较,以筛选树。我决定使用dataDescriptor。更改filterFunction和cal refresh函数可能会使树崩溃并重新加载?没有?我没有试过,但看了这篇博文:,似乎有可能是这样的,我只是在看那篇博文,实际上是:will签出源代码。实际上,我在寻找如何在Flash builder中实现首选项面板。在我看来,用户体验非常好。