Я пытаюсь создать переплетены BigDecimal
свойство, которое является вычисление двух других BigDecimal
Properites, как это:В TornadoFX, как я могу привязать свойства BigDecimal к другому свойству BigDecimal с помощью objectBinding?
val caculatedProperty: ObjectProperty<BigDecimal> = objectBinding<Any, BigDecimal>(sumProperty, discountProperty) { ... }
... как бы я сделал с StringProperty
или IntegerProperty
, и в противном случае будет работать без вопросы. Однако на этот раз я получаю несоответствие типа: он ожидает ObjectProperty<BigDecimal>
, но получает ObjectBinding<BigDecimal?>
.
В чем проблема? Использовал ли я метод objectProperty()
неправильно? Должен ли я использовать какой-либо другой метод для создания привязки настраиваемого объекта?
EDIT:
Проблема в том, что я пытался переопределить ObjectProperty<BigDecimal>
из родительского класса с ObjectBinding<BigDecimal>
. Решение в моем случае состояло в том, чтобы сделать оригинальный текст ObjectProperty<BigDecimal>
и оставить реализацию классам, которые наследуют его.
Есть ли способ создания (возможно только для чтения) 'Property' из' Binding'? Я хочу использовать мои привязки в ItemViewModel, но я не могу использовать 'bind {}', потому что это 'Binding', а не' Property' ... –
Я использовал 'ReadOnlyObjectWrapper', чтобы превратить привязку в' ReadOnlyObjectProperty'. Есть ли способ лучше? –
Действительно интересная проблема. Я посмотрю на это в выходные и вернусь к вам :) –