Not knowing your architecture I have two ides.
- This is what I would choose, but requires more effort - Design your UpdateUI method so that It can update according to the changed property, not simply refresh the whole UI when one property of one of hundreds ViewModels changes. For example if Age of a PersonViewModel changes, update only that.
- Execute pending layout updates once a few seconds. For example, you can start some sort of a timer which will check if there are pending layout updates (you will have to architecture that yourself) and execute them, or the last of them, depends on you. This can be efficient but must be designed carefully.
I am not familiar with Silverlight, only WPF, but I guess the same principles apply.