Javafx tableview行contextmenu绑定

时间:2016-05-17 01:59:05

标签: javafx javafx-8

this个链接,我已使用以下模式向我的tableview添加了上下文菜单 -

SelectionMode.MULTIPLE

我有一个要求,可以选择多行(// Show menu only if row is not null and value property == "foo" row.contextMenuProperty().bind( Bindings.when(Bindings.and(Bindings.isNotNull(row.itemProperty()), Bindings.equal("foo", row.getItem().value)) .then(rowMenu) .otherwise((ContextMenu)null)); ),我需要在行属性与特定值匹配时显示上下文菜单。我试过这个但没有运气 -

        row.emptyProperty().addListener((obs, wasEmpty, isEmpty) -> {
            if (isEmpty) {
                row.setContextMenu(null);
            } else {
                if (row.getItem().name.get().equals("foo")) {
                    row.setContextMenu(contextMenu);
                }
            }
        });

更新

我通过听众来完成这项工作 -

Bindings

问题 - 有没有办法使用<< API实现这一目标?

1 个答案:

答案 0 :(得分:0)

你的绑定是这样的:

Bindings.equal("foo", row.getItem().value)

但是你的听众会这样做:

row.getItem().name.get().equals("foo")

所以也许,在绑定中使用它会起作用:

Bindings.equal("foo", row.getItem().name.get())