我在几个TreeView之间共享了一个处理程序。
在处理程序中我可以访问TreeItem实例,是否有(简单)方法来确定它所属的TreeView?
目前我依靠外部变量来记录“当前活动的”TreeView,但这会使代码变得混乱,而且可能也相当脆弱。还有其他选择吗?
答案 0 :(得分:0)
我认为目前不可能,至少在JavaFX 2.2上。查看TreeView源代码(可用here),TreeView.setRoot(TreeItem<T> root)
方法只设置TreeView的root属性,而不将一些引用设置回根项目上的TreeView。在这种情况下,从根元素,没有引用它插入的TreeView。
因此,即使可以使用TreeItem.getParent()
从更深的项目到达根项目,也无法到达具有该项目的TreeView。