Biblioteca de clases de .NET Framework
ItemsControl..::.ItemTemplate (Propiedad)

Actualización: noviembre 2007

Obtiene o establece DataTemplate que se utiliza para mostrar cada elemento. Se trata de una propiedad de dependencia.

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

Visual Basic (Declaración)
<BindableAttribute(True)> _
Public Property ItemTemplate As DataTemplate
Visual Basic (Uso)
Dim instance As ItemsControl
Dim value As DataTemplate

value = instance.ItemTemplate

instance.ItemTemplate = value
C#
[BindableAttribute(true)]
public DataTemplate ItemTemplate { get; set; }
Visual C++
[BindableAttribute(true)]
public:
property DataTemplate^ ItemTemplate {
    DataTemplate^ get ();
    void set (DataTemplate^ value);
}
J#
/** @property */
/** @attribute BindableAttribute(true) */
public DataTemplate get_ItemTemplate()
/** @property */
/** @attribute BindableAttribute(true) */
public  void set_ItemTemplate(DataTemplate value)
JScript
public function get ItemTemplate () : DataTemplate
public function set ItemTemplate (value : DataTemplate)
Uso de elementos de propiedad XAML
<object>
  <object.ItemTemplate>
    <DataTemplate .../>
  </object.ItemTemplate>
</object>
Uso de atributos XAML
<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 (atributo) 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 valor predeterminado es nullNothingnullptrreferencia null (Nothing en Visual Basic).
Información sobre propiedades de dependencia

Campo de identificador

ItemTemplateProperty

Propiedades de metadatos establecidas en true.

None

Comentarios

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 interfaz de usuario resultante de cada elemento es una representación de cadena de cada objeto de la recolección subyacente.

Al establecer ItemTemplate en ItemsControl, la interfaz de usuario 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 interfaz de usuario.

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, así como muchas propiedades de estilo y creación de 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 afectar al diseño de los elementos, utilice la propiedad 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.

Ejemplos

En el siguiente ejemplo se muestra cómo crear una DataTemplate inline. DataTemplate especifica que cada elemento de datos aparece en forma de tres elementos TextBlock dentro de StackPanel. En este ejemplo, el objeto de datos es una clase llamada Task. Observe que cada elemento TextBlock de esta plantilla está enlazado a una propiedad de la clase Task.

C#
<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 una DataTemplate en la sección de recursos para que pueda ser un objeto reutilizable, como en el ejemplo siguiente:

C#
<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:

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

Para obtener el ejemplo completo, vea Introducción al ejemplo Data Templating.

Plataformas

Windows Vista

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.
Información de versión

.NET Framework

Compatible con: 3.5, 3.0
Vea también

Referencia

Otros recursos

Etiquetas :


Page view tracker