On the Double issue, removing them doesn't work and I am back with the Int value. I can only guess that ${opp.NominalAmount} and ${opp.Volume} are Doubles but opp.NominalAmount and opp.Volume aren't.
This means that the inferred type for those textboxe components is not correct for some reason. Try adding them again. Or add a custom attribute with name TValue and Value double
Also don't cast to (int?) this makes things even worse.
Will look at textboxes.
As my coding experience doesn't go beyond my Radzen exp, not sure I understand how TValue works and what will it do in this case
The type casts you have added have changed something vital for the Numeric components. I suggest removing the problematic component and adding it again.
Last but not least - why are you doing this to begin with? Why is UnitPrice both calculated and editable? Your users will find it very strange that UnitPrice changes after they have manually entered it (after changing NominalAmount or Volume). IMHO you should do one of the following to provide a lot better user experience:
Set initial value for UnitPrice and don't update it whenever NominalAmount or Volume changes
Leave UnitPrice to be entered by the user freely
Hide UnitPrice altogether - update it whenever NominalAmount or Volume changes but don't allow the user to edit it in a TextBox
From a business perspective, when the sales exec is answering a Request For Proposal, he gets a margin (haven't brought that into the mix yet ) from the production plant. He will then work out the unit price so that there is an additional margin for negotiation and possibly change it as part of the final negotiation. Buyers in this industry agree on unit price and Volume but also may slightly adjust the volumes in the last round. The Sales Exec may also try to see what would be the Unit Price (and associated margin) if the overall deal would be at a certain overall amount.
To make it short, all 4 (margin being the last to incorporate) need to be actionnable.
Just realised that Volume and NominalAmount could be Int. Would that make things easier knowing that UnitPrice can only be Double ?
Honestly I no longer understand what you have done. First you said it was working, then you added unnecessary casts to int? (not sure why) and things broke. Please send us your application to info@radzen.com so we can fix.
On your point about ugly UI, if fields are editable or not, it does not change much. Some industries have their own way of doing things because every client wants something different and unique which requires specific implementations of custom machinery at the plant level and the sales process particular. Take a look at the subtle difference between a water bottle cap and another. Never the same from a brand to the next.