DataTemplate Class

 
System_CAPS_noteNote

The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Describes the visual structure of a data object.

Namespace:   System.Windows
Assembly:  PresentationFramework (in PresentationFramework.dll)


<DictionaryKeyPropertyAttribute("DataTemplateKey")>
Public Class DataTemplate
	Inherits FrameworkTemplate

NameDescription
System_CAPS_pubmethodDataTemplate()

Initializes a new instance of the DataTemplate class.

System_CAPS_pubmethodDataTemplate(Object)

Initializes a new instance of the DataTemplate class with the specified DataType property.

NameDescription
System_CAPS_pubpropertyDataTemplateKey

Gets the default key of the DataTemplate.

System_CAPS_pubpropertyDataType

Gets or sets the type for which this DataTemplate is intended.

System_CAPS_pubpropertyDispatcher

Gets the Dispatcher this DispatcherObject is associated with. (Inherited from DispatcherObject.)

System_CAPS_pubpropertyHasContent

Gets a value that indicates whether this template has optimized content.(Inherited from FrameworkTemplate.)

System_CAPS_pubpropertyIsSealed

Gets a value that indicates whether this object is in an immutable state so it cannot be changed.(Inherited from FrameworkTemplate.)

System_CAPS_pubpropertyResources

Gets or sets the collection of resources that can be used within the scope of this template.(Inherited from FrameworkTemplate.)

System_CAPS_pubpropertyTemplate

Gets or sets a reference to the object that records or plays the XAML nodes for the template when the template is defined or applied by a writer.(Inherited from FrameworkTemplate.)

System_CAPS_pubpropertyTriggers

Gets a collection of triggers that apply property values or perform actions based on one or more conditions.

System_CAPS_pubpropertyVisualTree

Gets or sets the root node of the template.(Inherited from FrameworkTemplate.)

NameDescription
System_CAPS_pubmethodCheckAccess()

Determines whether the calling thread has access to this DispatcherObject.(Inherited from DispatcherObject.)

System_CAPS_pubmethodEquals(Object)

Determines whether the specified object is equal to the current object.(Inherited from Object.)

System_CAPS_protmethodFinalize()

Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.)

System_CAPS_pubmethodFindName(String, FrameworkElement)

Finds the element associated with the specified name defined within this template.(Inherited from FrameworkTemplate.)

System_CAPS_pubmethodGetHashCode()

Serves as the default hash function. (Inherited from Object.)

System_CAPS_pubmethodGetType()

Gets the Type of the current instance.(Inherited from Object.)

System_CAPS_pubmethodLoadContent()

Loads the content of the template as an instance of an object and returns the root element of the content.(Inherited from FrameworkTemplate.)

System_CAPS_protmethodMemberwiseClone()

Creates a shallow copy of the current Object.(Inherited from Object.)

System_CAPS_pubmethodRegisterName(String, Object)

Registers a new name/object pair into the current name scope.(Inherited from FrameworkTemplate.)

System_CAPS_pubmethodSeal()

Locks the template so it cannot be changed.(Inherited from FrameworkTemplate.)

System_CAPS_pubmethodShouldSerializeResources(XamlDesignerSerializationManager)

Returns a value that indicates whether serialization processes should serialize the value of the Resources property on instances of this class.(Inherited from FrameworkTemplate.)

System_CAPS_pubmethodShouldSerializeVisualTree()

Returns a value that indicates whether serialization processes should serialize the value of the VisualTree property on instances of this class.(Inherited from FrameworkTemplate.)

System_CAPS_pubmethodToString()

Returns a string that represents the current object.(Inherited from Object.)

System_CAPS_pubmethodUnregisterName(String)

Removes a name/object mapping from the XAML namescope.(Inherited from FrameworkTemplate.)

System_CAPS_protmethodValidateTemplatedParent(FrameworkElement)

Checks the templated parent against a set of rules.(Overrides FrameworkTemplate.ValidateTemplatedParent(FrameworkElement).)

System_CAPS_pubmethodVerifyAccess()

Enforces that the calling thread has access to this DispatcherObject.(Inherited from DispatcherObject.)

NameDescription
System_CAPS_pubinterfaceSystem_CAPS_privmethodINameScope.FindName(String)

This API supports the product infrastructure and is not intended to be used directly from your code. Returns an object that has the provided identifying name. (Inherited from FrameworkTemplate.)

System_CAPS_pubinterfaceSystem_CAPS_privmethodIQueryAmbient.IsAmbientPropertyAvailable(String)

Queries whether a specified ambient property is available in the current scope.(Inherited from FrameworkTemplate.)

You use a DataTemplate to specify the visualization of your data objects. DataTemplate objects are particularly useful when you are binding an ItemsControl such as a ListBox to an entire collection. Without specific instructions, a ListBox displays the string representation of the objects in a collection. In that case, you can use a DataTemplate to define the appearance of your data objects. The content of your DataTemplate becomes the visual structure of your data objects.

For an in-depth discussion, see Data Templating Overview.

The following example shows how to create a DataTemplate inline. The DataTemplate specifies that each data item appears as three TextBlock elements within a StackPanel. In this example, the data object is a class called Task. Note that each TextBlock element in this template is bound to a property of the Task class.

<ListBox Width="400" Margin="10"
         ItemsSource="{Binding Source={StaticResource myTodoList}}">
   <ListBox.ItemTemplate>
     <DataTemplate>
       <StackPanel>
         <TextBlock Text="{Binding Path=TaskName}" />
         <TextBlock Text="{Binding Path=Description}"/>
         <TextBlock Text="{Binding Path=Priority}"/>
       </StackPanel>
     </DataTemplate>
   </ListBox.ItemTemplate>
 </ListBox>

It is more common to define a DataTemplate in the resources section so it can be a reusable object, as in the following example:

<Window.Resources>
<DataTemplate x:Key="myTaskTemplate">
  <StackPanel>
    <TextBlock Text="{Binding Path=TaskName}" />
    <TextBlock Text="{Binding Path=Description}"/>
    <TextBlock Text="{Binding Path=Priority}"/>
  </StackPanel>
</DataTemplate>
</Window.Resources>

Now you can use myTaskTemplate as a resource, as in the following example:

<ListBox Width="400" Margin="10"
         ItemsSource="{Binding Source={StaticResource myTodoList}}"
         ItemTemplate="{StaticResource myTaskTemplate}"/>

For the complete sample, see Introduction to Data Templating Sample.

.NET Framework
Available since 3.0
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0

Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top
Show: