I was able to get to that (it works, but it is really ugly): for (i in 0 until samplescontroller.labels.size-1) {
val col = TableColumn<Sampledata, Double>(samplescontroller.labels[i])
col.cellValueFactory = Callback { it.value.bioassays[i].roundToNDecimalPlaces(1).toProperty().asObject() }
columns.add(col)
}