Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original.
Traducción
Original
Información
El tema que ha solicitado se muestra abajo. Sin embargo, este tema no se encuentra en la biblioteca.

ItemsControl.ItemTemplate (Propiedad)

Obtiene o establece DataTemplate que se utiliza para mostrar cada elemento.

Espacio de nombres:  System.Windows.Controls
Ensamblado:  PresentationFramework (en PresentationFramework.dll)
XMLNS para XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

[BindableAttribute(true)]
public DataTemplate ItemTemplate { get; set; }
<object>
  <object.ItemTemplate>
    <DataTemplate .../>
  </object.ItemTemplate>
</object>
<object ItemTemplate=" ResourceExtension TemplateResourceKey"/>

Valores XAML

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 del tiempo de ejecución, tales como recursos del sistema o preferencias del usuario, se recomienda en general hacer referencia Extensión de marcado StaticResource a un estilo para un mejor rendimiento.

TemplateResourceKey

Valor de cadena x:Key (Directiva) que hace referencia a la plantilla que se solicita como recurso.

Valor de propiedad

Tipo: System.Windows.DataTemplate
DataTemplate que especifica la visualización de los objetos de datos. El tipo predeterminado es null.

Campo de identificador

ItemTemplateProperty

Propiedades de metadatos establecidas en true.

Ninguno

Utiliza ItemTemplate para especificar la visualización de los objetos de datos. Si ItemsControl está enlazado a un objeto de la recolección y no se proporcionan instrucciones de presentación en pantalla concretas mediante DataTemplate, la UI resultante de cada elemento es una representación de cadena de cada objeto de la recolección subyacente.

Al establecer ItemTemplate en ItemsControl, la UI se genera del modo siguiente (utilizando ListBox como ejemplo):

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

  2. Una parte de la preparación implica la copia de ItemTemplate de ListBox para ser ContentTemplate de ListBoxItem.

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

  4. Finalmente, ContentPresenter aplica este ContentTemplate a sí mismo y eso crea la UI.

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

ItemsControl proporciona gran flexibilidad para la personalización visual y proporciona muchas propiedades de estilo y plantillas. Utilice la propiedad ItemContainerStyle o la propiedad ItemContainerStyleSelector 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 controles ListBoxItem; para ComboBox, son controles ComboBoxItem. Para modificar el diseño de los elementos, utilice la propiedad de ItemsPanel . Si utiliza la agrupación en el control, puede utilizar la propiedad GroupStyle o GroupStyleSelector.

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

En el siguiente ejemplo se muestra cómo crear un objeto DataTemplate insertado. DataTemplate especifica que cada elemento de datos debe aparecer como tres elementos TextBlock en un control StackPanel. En este ejemplo, el objeto de datos es una clase denominada Task. Observe que cada elemento TextBlock de esta plantilla está enlazado a una propiedad de la clase Task.


<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 objeto DataTemplate en la sección de recursos para que pueda 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 utilizar myTaskTemplate como recurso, tal como se muestra en el ejemplo siguiente:


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


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

.NET Framework

Compatible con: 4, 3.5, 3.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Adiciones de comunidad

Mostrar:
© 2015 Microsoft