Vb6 screen updating
The easiest and surest way is to include it in the resources of your System. Application object, almost always difficult or infeasible for composite applications.
Be wary of them, and try to use inherited attached properties instead of relying on Relative Source in Data Templates.
There is a huge cost in constructing Resource Dictionaries, and depending on where you place them, you are probably constructing many more objects than you realize.
A common, sensible, and logical pattern is to keep usages of elements as close to where you use them as possible. Resources, or break up their themes into multiple Resource Dictionaries for clarity and separation.
It keeps the observed object (generally, your view model) from accidentally holding a strong reference to your view. Viewmodels tend to have a longer lifetime than views (consider a virtualized Items Control), so it’s possible that your view model will inadvertently gather references to views.
If your views or behaviors rely on events being raised from a viewmodel (as innocuous as INotify Property Changed. Use classes like Property Changed Event Manager or Collection Changed Event Manager, or (painfully) use the Weak Event Manager to create your own event manager for your custom events.
Not necessary the healthiest design, but the performance is quite a bit better.