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
|
ItemsControl.ItemTemplate (Propiedad)
Obtiene o establece DataTemplate que se utiliza para mostrar cada elemento.
Ensamblado: PresentationFramework (en PresentationFramework.dll)
XMLNS para XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation
<object> <object.ItemTemplate> <DataTemplate .../> </object.ItemTemplate> </object>
<object ItemTemplate=" ResourceExtension TemplateResourceKey"/>
Valores XAML
Valor de propiedad
Tipo: System.Windows.DataTemplateDataTemplate que especifica la visualización de los objetos de datos. El tipo predeterminado es null.
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):
-
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.
-
Una parte de la preparación implica la copia de ItemTemplate de ListBox para ser ContentTemplate de ListBoxItem.
-
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.
-
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, 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.
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:
Ahora puede utilizar myTaskTemplate como recurso, tal como se muestra en el ejemplo siguiente:
Para obtener el ejemplo completo, vea Introduction to Data Templating Sample.
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.