ItemsControl.ItemTemplate Propiedad

Definición

Obtiene o establece DataTemplate que se utiliza para mostrar cada elemento.Gets or sets the DataTemplate used to display each item.

public:
 property System::Windows::DataTemplate ^ ItemTemplate { System::Windows::DataTemplate ^ get(); void set(System::Windows::DataTemplate ^ value); };
[System.ComponentModel.Bindable(true)]
public System.Windows.DataTemplate ItemTemplate { get; set; }
member this.ItemTemplate : System.Windows.DataTemplate with get, set
Public Property ItemTemplate As DataTemplate

Valor de propiedad

DataTemplate que especifica la visualización de los objetos de datos.A DataTemplate that specifies the visualization of the data objects. De manera predeterminada, es null.The default is null.

Atributos

Ejemplos

En el ejemplo siguiente se muestra cómo crear DataTemplate un insertado.The following example shows how to create a DataTemplate inline. Especifica que cada elemento de datos aparece como tres TextBlock elementos dentro de StackPanel. DataTemplateThe DataTemplate specifies that each data item appears as three TextBlock elements within a StackPanel. En este ejemplo, el objeto de datos es una clase Taskdenominada.In this example, the data object is a class called Task. Tenga en cuenta TextBlock que cada elemento de esta plantilla se enlaza a una propiedad Task de la clase.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>

Es más común definir un DataTemplate en la sección de recursos para que pueda ser un objeto reutilizable, como en el ejemplo siguiente: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>

Ahora puede usar myTaskTemplate como recurso, como en el ejemplo siguiente: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}"/>

Para obtener el ejemplo completo, vea Introducción a la aplicación de plantillas de ejemplo.For the complete sample, see Introduction to Data Templating Sample.

Comentarios

Utilice ItemTemplate para especificar la visualización de los objetos de datos.You use the ItemTemplate to specify the visualization of the data objects. Si está enlazado a un objeto de colección y no proporciona instrucciones de presentación específicas DataTemplatemediante, el resultado IUUI de cada elemento es una representación de cadena de cada objeto de la colección subyacente. ItemsControlIf your ItemsControl is bound to a collection object and you do not provide specific display instructions using a DataTemplate, the resulting IUUI of each item is a string representation of each object in the underlying collection.

Cuando ItemTemplate se establece ItemsControlen, el IUUI se genera como se indica a continuación (mediante ListBox como ejemplo):When you set an ItemTemplate on an ItemsControl, the IUUI is generated as follows (using the ListBox as an example):

  1. Durante la ItemsPanel generación de contenido, inicia una solicitud ItemContainerGenerator para que cree un contenedor para cada elemento de datos.During content generation, the ItemsPanel initiates a request for the ItemContainerGenerator to create a container for each data item. Para ListBox, el contenedor ListBoxItemes.For ListBox, the container is a ListBoxItem. El generador vuelve ItemsControl a llamar a para preparar el contenedor.The generator calls back into the ItemsControl to prepare the container.

  2. Parte de la preparación implica la ItemTemplate copia de ListBox de ListBoxItempara que sea ContentTemplate de.Part of the preparation involves the copying of the ItemTemplate of the ListBox to be the ContentTemplate of the ListBoxItem.

  3. De forma similar ContentControl a todos los ControlTemplate tipos, ListBoxItem el de ContentPresenterun contiene un.Similar to all ContentControl types, the ControlTemplate of a ListBoxItem contains a ContentPresenter. Cuando se aplica la plantilla, se crea un ContentPresenter cuya ContentTemplate se ListBoxItemenlaza al ContentTemplate de.When the template is applied, it creates a ContentPresenter whose ContentTemplate is bound to the ContentTemplate of the ListBoxItem.

  4. Por último, ContentPresenter ContentTemplate se aplica a sí mismo y que crea IUUI.Finally, the ContentPresenter applies that ContentTemplate to itself, and that creates the IUUI.

Si tiene más de un DataTemplate definido y desea proporcionar lógica para elegir y DataTemplateaplicar mediante programación, use la ItemTemplateSelector propiedad.If you have more than one DataTemplate defined and you want to supply logic to programmatically choose and apply a DataTemplate, use the ItemTemplateSelector property.

Proporciona ItemsControl una gran flexibilidad para la personalización visual y proporciona muchas propiedades de estilo y plantillas.The ItemsControl provides great flexibility for visual customization and provides many styling and templating properties. Utilice la ItemContainerStyle propiedad o la ItemContainerStyleSelector propiedad para establecer un estilo que afecte a la apariencia de los elementos que contienen los elementos de datos.Use the ItemContainerStyle property or the ItemContainerStyleSelector property to set a style to affect the appearance of the elements that contain the data items. Por ejemplo, para ListBox, los contenedores generados ListBoxItem son controles; ComboBoxpara, son ComboBoxItem controles.For example, for ListBox, the generated containers are ListBoxItem controls; for ComboBox, they are ComboBoxItem controls. Para afectar al diseño de los elementos, use la ItemsPanel propiedad.To affect the layout of the items, use the ItemsPanel property. Si está utilizando la agrupación en el control, puede usar la GroupStyle propiedad o. GroupStyleSelectorIf you are using grouping on your control, you can use the GroupStyle or GroupStyleSelector property.

Para obtener más información, consulte Información general sobre plantillas de datos.For more information, see Data Templating Overview.

Uso de atributos XAMLXAML Attribute Usage

<object ItemTemplate=" ResourceExtension TemplateResourceKey"/>  

Valores XAMLXAML Values

ResourceExtensionResourceExtension
Uno de los siguientes: Extensión de marcado StaticResourceo extensión de marcado DynamicResource.One of the following: StaticResource Markup Extension, or DynamicResource Markup Extension. A menos que los propios estilos contengan referencias a posibles referencias en tiempo de ejecución, como recursos del sistema o preferencias del usuario, la referencia de extensión de marcado StaticResource a un estilo suele ser recomendable para el rendimiento.Unless the styles themselves contain references to potential run-time references such as system resources or user preferences, StaticResource Markup Extension reference to a style is usually recommended for performance.

TemplateResourceKeyTemplateResourceKey
x:Key : valor de cadena que hace referencia a la plantilla que se solicita como recurso.x:Key Directive string value referring to the template being requested as a resource.

Información sobre propiedades de dependenciaDependency Property Information

Campo de identificadorIdentifier field ItemTemplateProperty
Propiedades de metadatos establecidas entrueMetadata properties set to true NingunaNone

Se aplica a

Consulte también: