Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

When modifying a large collection of items, it is not required to raise change events for each added / removed value. Therefore the FastObservableCollection will disable change notifications until the full collection modification is done and then raise the change events just once.

Implementing IViewPropertySelector

Catel uses a special wrapping technology to wrap bindings to dependency properties to be able to add change notifications for all target platforms. Though this technology works great, it might have impact on performance and this is not always necessary. By implementing a custom IViewPropertySelector, developers can tweak the interesting dependency properties per type.

Note

By default Catel subscribes to all dependency properties to not cause breaking changes. It is however possible to override the registration using the FastViewPropertySelector that ships with Catel

It is best to always create a default dependency instead.

Code Block
public class CustomViewPropertySelector : ViewPropertySelector
{
    public override bool MustSubscribeToAllViewProperties(Type targetControlType)
	{
		return false;
	}
}

Then register it in theĀ ServiceLocator:

Code Block
ServiceLocator.Default.RegisterType<IViewPropertySelector, CustomViewPropertySelector>();

Even when the custom IViewPropertySelector implementation returns an empty list, Catel will always subscribe to theĀ DataContext dependency property because it depends on that.

Specify throttling on the ViewModelBase

...