gpt4 book ai didi

JavaFX:在不引用属性的情况下取消绑定(bind)属性

转载 作者:行者123 更新时间:2023-11-30 08:30:06 26 4
gpt4 key购买 nike

我有以下代码:

@Override
public void start(Stage stage) throws Exception {
TextField textField1=new TextField();
SimpleStringProperty property=new SimpleStringProperty("Initial Value");
textField1.textProperty().bindBidirectional(property);
Button but1=new Button("New value");
Button but2=new Button("Unbind");
but1.setOnAction((event)->{
property.set("New Value");
});
but2.setOnAction((event)->{
//THIS LINE
});
VBox vbox=new VBox();
vbox.getChildren().addAll(textField1,but1,but2);
Scene scene=new Scene(vbox, 200, 400);
stage.setScene(scene);
stage.show();
}

问题是如果我将 THIS LINE 替换为

textField1.textProperty().unbind();

解除绑定(bind)不起作用。但是如果我替换为

textField1.textProperty().unbindBidirectional(property);

解绑有效。

我有很多属性,不想保留它们的引用。是否可以从 textField1 或 textField1.textProperty() 获取属性?或者是否可以在不引用 property

的情况下解除绑定(bind)

最佳答案

据我所知,没有办法做到这一点。您可以将一个属性双向绑定(bind)到任意数量的属性。即使您可以检索 textField1.textProperty() 双向绑定(bind)的属性列表(而且我很确定没有办法做到这一点),您怎么知道您想要哪个解绑?

“我有很多属性,不想保留它们的引用。”只是建议你需要重新考虑你的设计——你真的应该只绑定(bind)到你的模型中的东西,你必须保留对它们的引用。

关于JavaFX:在不引用属性的情况下取消绑定(bind)属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41451417/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com