.NET Framework 4.6 and 4.5
Returns the template to use. This may depend on the content or other properties.
protected virtual DataTemplate ChooseTemplate()
The base class implements the following rules:
If ContentTemplate is set, use it.
If ContentTemplateSelector is set, call its SelectTemplate method. If the result is not null, use it.
Look for a DataTemplate whose DataType matches the content among the resources known to the ContentPresenter (including application, theme, and system resources). If one is found, use it.
If the type of Content is "common", use a standard template. The common types are String, XmlNode, and UIElement.
Otherwise, use a default template that essentially converts Content to a string and displays it in a TextBlock.
Derived classes can override these rules and implement their own.
Supported in: 4.6, 4.5, 4, 3.5, 3.0
.NET Framework Client Profile
Supported in: 4, 3.5 SP1