Vb6 screen updating
If you have a lot of binding errors, then those split seconds start to add up.Make sure to go through your bindings, especially those on Items Controls (List Views, custom grids, etc.) and verify that there are no binding errors.It’s painful, but usually necessary in order to prevent view models from taking references to views.If your application displays data from a network, you’re probably using background threads to accomplish the task (which is good).Because of WPF’s references to your objects, it is not just enough to drop references to your view and view model.A better alternative is to rely on data binding where you can; create a Dependency Property for the sole purpose of listening to changes on your target property, and use the change notifications in Dependency Property in order to listen to changes on the target property.
This advice is practically impossible to follow, but do your best.
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.
Create a collection with mixed viewmodel types–your original collection, and one that represents the “group”.
Use Data Templates to change the appearance of your “group” objects. NET 4.0, Dynamic Resource access is still slower than Static Resource access.
For views, you get the get a WPF notification that a viewmodel is about to go unused by a view.