如何在JavaFX中将LocalDate双向绑定到文本字段

如何在JavaFX中将LocalDate双向绑定到文本字段,date,binding,javafx-8,Date,Binding,Javafx 8,我正在尝试将DTO上的ObjectProperty绑定到TextField上,但很难使其正常工作 我是这样设置的: dateOfBirthTextField.setTextFormatter(new TextFormatter<>(new LocalDateEnhancedStringConverter())); person.birthdayProperty().bindBidirectional(dateOfBirthTextField.textProperty(), new

我正在尝试将DTO上的
ObjectProperty
绑定到
TextField
上,但很难使其正常工作

我是这样设置的:

dateOfBirthTextField.setTextFormatter(new TextFormatter<>(new LocalDateEnhancedStringConverter()));

person.birthdayProperty().bindBidirectional(dateOfBirthTextField.textProperty(), new LocalDateEnhancedStringConverter());
dateOfBirthTextField.setTextFormatter(新的TextFormatter(新的LocalDateEnhancedStringConverter());
person.birthdayProperty().BindBirthTextField.textProperty(),新的LocalDateEnhancedStringConverter());
但这给了我以下编译错误:

类型ObjectProperty中的方法BindBidirective(Property)不适用于参数(StringProperty、LocalDateEnhancedStringConverter)


不太确定下一步要尝试什么?

我建议改用a。然后可以根据JavaDoc绑定。

public(属性其他,StringConverter转换器)

在此
StringProperty
和另一个任意属性之间创建双向绑定。 参数:

其他
-其他属性

converter
-用于在此StringProperty和其他属性之间转换的StringConverter

(粗体是我的)

因此,您应该按照相反的顺序进行绑定,将来自textfield的
StringProperty
绑定到“other”属性,即生日属性:

dateOfBirthTextField.textProperty()
    .bindBidirectional(
        person.birthdayProperty(), 
        new LocalDateEnhancedStringConverter());

不幸的是,我的用户不需要日期选择器,所以我只能使用这个用例。