Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Propiedad ItemsControl.ItemTemplate

 

Publicado: octubre de 2016

Obtiene o establece el DataTemplate utilizado para mostrar cada elemento.

Espacio de nombres:   System.Windows.Controls
Ensamblado:  PresentationFramework (en PresentationFramework.dll)

[BindableAttribute(true)]
public DataTemplate ItemTemplate { get; set; }

Valor de propiedad

Type: System.Windows.DataTemplate

DataTemplate que especifica la visualización de los objetos de datos. De manera predeterminada, es null.

Usa el ItemTemplate para especificar la visualización de los objetos de datos. Si su ItemsControl está enlazado a una colección de objeto y no proporciona instrucciones de visualización específico mediante un DataTemplate, resultante IU de cada elemento es una representación de cadena de cada objeto de la colección subyacente.

Al establecer un ItemTemplate en un ItemsControl, el IU se genera la siguiente (utilizando el ListBox como ejemplo):

  1. Durante la generación del contenido, la ItemsPanel inicia una solicitud para el ItemContainerGenerator para crear un contenedor para cada elemento de datos. Para ListBox, el contenedor es un ListBoxItem. El generador de llama de nuevo en el ItemsControl para preparar el contenedor.

  2. Parte de la preparación implica la copia de la ItemTemplate de la ListBox sea la ContentTemplate de la ListBoxItem.

  3. Similar a todos los ContentControl tipos, el ControlTemplate de un ListBoxItem contiene un ContentPresenter. Cuando se aplica la plantilla, se crea un ContentPresenter cuyo ContentTemplate se enlaza a la ContentTemplate de la ListBoxItem.

  4. Por último, el ContentPresenter que aplica ContentTemplate a sí mismo, lo que crea el IU.

Si tiene más de una DataTemplate definida y desea proporcionar la lógica para elegir mediante programación y aplicar un DataTemplate, utilice el ItemTemplateSelector propiedad.

El ItemsControl proporciona gran flexibilidad para la personalización visual y proporciona muchas propiedades de estilos y plantillas. Utilice la ItemContainerStyle propiedad o ItemContainerStyleSelector propiedad para establecer un estilo que afecta al aspecto de los elementos que contienen los elementos de datos. Por ejemplo, para ListBox, los contenedores generados son ListBoxItem controla; para ComboBox, son ComboBoxItem controles. Para modificar el diseño de los elementos, utilice el ItemsPanel propiedad. Si se utiliza la agrupación en el control, puede utilizar el GroupStyle o GroupStyleSelector propiedad.

Para obtener más información, consulte información general sobre plantillas de datos.

<object ItemTemplate=" ResourceExtension TemplateResourceKey"/>

ResourceExtension

Uno de los siguientes: extensión de marcado StaticResource, o extensión de marcado DynamicResource. A menos que los estilos contengan referencias a referencias potenciales de tiempo de ejecución como recursos del sistema o las preferencias del usuario, extensión de marcado StaticResource general, se recomienda la referencia a un estilo para el rendimiento.

TemplateResourceKey

x:Key Directive valor de cadena que hace referencia a la plantilla que se solicita como recurso.

Campo identificador

ItemTemplateProperty

Propiedades de metadatos se establecen en true

NONE

En el ejemplo siguiente se muestra cómo crear un DataTemplate en línea. El DataTemplate Especifica que cada elemento de datos aparece en tres TextBlock elementos dentro de un StackPanel. En este ejemplo, el objeto de datos es una clase denominada Task. Tenga en cuenta que cada TextBlock elemento en esta plantilla se enlaza a una propiedad de la Task clase.

<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 para definir un DataTemplate en la sección de recursos, por lo que puede ser un objeto reutilizable, como en el ejemplo siguiente:

<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 un recurso, como en el ejemplo siguiente:

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

Para obtener un ejemplo completo, vea Introduction to Data Templating Sample.

.NET Framework
Disponible desde 3.0
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0
Volver al principio
Mostrar: