问题
I need to bind together two ListProperties:
ObservableList<Data<Number, Number>> chartDataList = FXCollections.observableArrayList();
ListProperty<Data<Number, Number>> chartDataProperty = new SimpleListProperty<>(this, "chartData", chartDataList);
ObservableList<Point2D> observableData = FXCollections.observableArrayList();
ListProperty<Point2D> dataProperty = new SimpleListProperty<>(this, "Data", observableData);
chartDataList
will be used to display a LineChart, while the other (data
) will be used in the rest of my program. chartDataProperty
is not really needed (but for binding), because LineChart
uses just chartDataList
.
Note: binding needs to be bidirectional because I have means to manually drag the points on the LineChart
using mouse.
I didn't find a direct way to handle this; only conversion seems to be to/from String
(or ListProperty<String>
). I could use that, with man-in-the-middle ListProperty<String>
, but it looks very inefficient.
Otherwise I need to resort to ChangeListner
usage, manually handling all possible cases.
Please tell me I have some better choice.
来源:https://stackoverflow.com/questions/24479506/javafx-bidirectional-binding-of-two-different-non-string-listproperty