Provides a way to choose a DataTemplate based on the data object and the data-bound element, etc.