2017-01-03 1 views
1

を参照せずにアンバインドプロパティI次のコードを持っている:私は動作しないアンバインドのJavaFX:プロパティ

textField1.textProperty().unbind(); 

と交換THIS LINE場合

@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(); 
} 

問題はあるが。しかし、私が

と置き換えた場合
textField1.textProperty().unbindBidirectional(property); 

アンバインド作業。

私は多くのプロパティを持ち、参照を保持したくありません。 textField1またはtextField1.textProperty()からプロパティを取得できますか?または、他の方法でバインドを解除することは可能ですか?property

答えて

1

私が知る限り、これを行う方法はありません。プロパティを任意の数のプロパティに双方向にバインドできます。 textField1.textProperty()が双方向にバインドされているプロパティのリストを取得できたとしても(そして、その方法はありません)、バインドを解除したいのはどのように分かりますか?

"私は多くのプロパティを持ち、参照を保持したくありません。"単にあなたがあなたのデザインを再考する必要があることを示唆しています。実際には、モデル内のものにバインドする必要があります。

関連する問題