A data template is a chunk of XAML markup that defines how a bound data object should be displayed. Two types of controls support data templates:
Content controls support data templates through the ContentTemplate property. The content template is used to display whatever you've placed in the Content property.
List controls (controls that derive from ItemsControl) support data templates through the ItemTemplate property. This template is used to display each item from the collection (or each row from a DataTable) that you've supplied as the ItemsSource.
The list-based template feature is actually based on content control templates. That's because each item in a list is wrapped by a content control, such as ListBoxItem for the ListBox, ...