DataTemplate Class
![]() |
---|
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.
Assembly: PresentationFramework (in PresentationFramework.dll)
Name | Description | |
---|---|---|
![]() | DataTemplate() | Initializes a new instance of the DataTemplate class. |
![]() | DataTemplate(Object) | Initializes a new instance of the DataTemplate class with the specified DataType property. |
Name | Description | |
---|---|---|
![]() | DataTemplateKey | Gets the default key of the DataTemplate. |
![]() | DataType | Gets or sets the type for which this DataTemplate is intended. |
![]() | Dispatcher | Gets the Dispatcher this DispatcherObject is associated with. (Inherited from DispatcherObject.) |
![]() | HasContent | Gets a value that indicates whether this template has optimized content.(Inherited from FrameworkTemplate.) |
![]() | IsSealed | Gets a value that indicates whether this object is in an immutable state so it cannot be changed.(Inherited from FrameworkTemplate.) |
![]() | Resources | Gets or sets the collection of resources that can be used within the scope of this template.(Inherited from FrameworkTemplate.) |
![]() | Template | 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.) |
![]() | Triggers | Gets a collection of triggers that apply property values or perform actions based on one or more conditions. |
![]() | VisualTree | Gets or sets the root node of the template.(Inherited from FrameworkTemplate.) |
Name | Description | |
---|---|---|
![]() | CheckAccess() | Determines whether the calling thread has access to this DispatcherObject.(Inherited from DispatcherObject.) |
![]() | Equals(Object) | Determines whether the specified object is equal to the current object.(Inherited from Object.) |
![]() | Finalize() | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.) |
![]() | FindName(String, FrameworkElement) | Finds the element associated with the specified name defined within this template.(Inherited from FrameworkTemplate.) |
![]() | GetHashCode() | Serves as the default hash function. (Inherited from Object.) |
![]() | GetType() | |
![]() | LoadContent() | Loads the content of the template as an instance of an object and returns the root element of the content.(Inherited from FrameworkTemplate.) |
![]() | MemberwiseClone() | |
![]() | RegisterName(String, Object) | Registers a new name/object pair into the current name scope.(Inherited from FrameworkTemplate.) |
![]() | Seal() | Locks the template so it cannot be changed.(Inherited from FrameworkTemplate.) |
![]() | ShouldSerializeResources(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.) |
![]() | ShouldSerializeVisualTree() | Returns a value that indicates whether serialization processes should serialize the value of the VisualTree property on instances of this class.(Inherited from FrameworkTemplate.) |
![]() | ToString() | Returns a string that represents the current object.(Inherited from Object.) |
![]() | UnregisterName(String) | Removes a name/object mapping from the XAML namescope.(Inherited from FrameworkTemplate.) |
![]() | ValidateTemplatedParent(FrameworkElement) | Checks the templated parent against a set of rules.(Overrides FrameworkTemplate.ValidateTemplatedParent(FrameworkElement).) |
![]() | VerifyAccess() | Enforces that the calling thread has access to this DispatcherObject.(Inherited from DispatcherObject.) |
Name | Description | |
---|---|---|
![]() ![]() | INameScope.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.) |
![]() ![]() | IQueryAmbient.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.
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.