Normally when you want a databound control to \'update,\' you use the \"PropertyChanged\" event to signal to the interface that the data has changed behind the scenes.
I don't believe there is a way of accomplishing exactly what you need with your current converter. As you mentioned, you could do the calculation in your ViewModel, or you could change your converter into an IMulitValueConverter.
From your specific scenario (the converter tied to a ViewModel class, and a few of its properties), I would lean towards implementing the logic in the ViewModel.