我有一个案例,我需要ObservableList<Item>根据项目的某些属性过滤一个(即条件是内部的而不是外部的).我发现javafx已经FilteredList尝试过了.我可以设置谓词和过滤工作,直到确定过滤的属性值发生变化.设置谓词现在完成如下:
list.setPredicate(t -> !t.filteredProperty().get())
Run Code Online (Sandbox Code Playgroud)
由于谓词返回boolean而不是BooleanProperty,因此对该属性的更改不会反映在列表中.
这有什么简单的解决方案吗?我可以尝试做一些解决方法,例如创建一个单独的列表并同步它,或者每次属性更改一个项目时重置谓词,希望重新触发过滤,但我首先想问一下,如果有人知道一个漂亮的解决方案作为那些变通办法当然不是.