Je suis en train de créer un binded BigDecimal
propriété qui est un calcul de deux autres BigDecimal
properites, comme ceci:Dans TornadoFX, comment lier les propriétés BigDecimal à une autre propriété BigDecimal à l'aide de objectBinding?
val caculatedProperty: ObjectProperty<BigDecimal> = objectBinding<Any, BigDecimal>(sumProperty, discountProperty) { ... }
... comme je le ferais avec StringProperty
ou IntegerProperty
, et il serait par ailleurs travailler sans problèmes. Cependant, cette fois je reçois une incompatibilité de type: il attend ObjectProperty<BigDecimal>
, mais reçoit ObjectBinding<BigDecimal?>
.
Quel est le problème ici? Ai-je mal utilisé la méthode objectProperty()
? Dois-je utiliser une autre méthode pour créer une liaison d'un objet personnalisé?
EDIT:
La question était que je tentais de passer outre la ObjectProperty<BigDecimal>
de classe parente avec ObjectBinding<BigDecimal>
. La solution, dans mon cas, était de rendre le résumé original ObjectProperty<BigDecimal>
, et de laisser l'implémentation aux classes qui l'héritent.
Existe-t-il un moyen de créer une propriété (peut-être en lecture seule) à partir d'une liaison? Je veux utiliser mes liaisons dans le ItemViewModel, mais je ne peux pas utiliser 'bind {}' car c'est un 'Binding', pas un' Property' ... –
J'ai utilisé 'ReadOnlyObjectWrapper' pour transformer une liaison en' ' ReadOnlyObjectProperty'. Y a-t-il un meilleur moyen? –
Question intéressante en effet. Je vais regarder cela pendant le week-end et revenir à vous :) –