I have tried a lot of solutions, but none of them resolved all the issues. I wanted to be able to directly bind a Nullable Integer/Decimal and to the have the input immediately applied to the binded property.
I have implemented two custom TextBox controls for Integers and Decimals. The usage is as simply as possible:
<controls:DecimalBox Value="{Binding Path=Percentage}" Maximum="98.5"/>