Как привязать свойство свойства к столбцу в Tornado TableView? - PullRequest
0 голосов
/ 25 декабря 2018

Я пытаюсь привязать свойство свойства класса к столбцу в TornadoFX TableView.Это только позволяет мне связать само свойство, которое является экземпляром класса.Это показывает идентификатор экземпляра класса (model.Address@2fe90a0b), а не свойство, которое я хочу отобразить.Есть ли способ привязать свойства свойства к столбцу в TableView?

val people = mutableListOf<Person>().observable()

tableview(people) { 
    id="ResultTable"
    readonlyColumn("First Name",Person::firstName)
    readonlyColumn("Last Name",Person::lastName)
    readonlyColumn("Email Address",Person::email)
    readonlyColumn("Street", Person::address) // this property is a class
    columnResizePolicy = SmartResize.POLICY
    isEditable = true
}

Я хочу привязать свойство Address.street к столбцу "Улица"

1 Ответ

0 голосов
/ 25 декабря 2018

Да, это возможно, и у вас есть несколько вариантов.Один из них - просто переопределить то, что показано в столбце:

readonlyColumn("Street", Person::address).cellFormat {
    text = it.street
}

Другой - предоставить функцию для извлечения свойства.Однако, поскольку кажется, что вы решили не следовать рекомендациям и использовать наблюдаемые свойства в своих объектах домена, вам необходимо преобразовать значение String в наблюдаемое свойство при его возврате:

column<Person, String>("Street") {
    SimpleStringProperty(it.value.address.street) 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...