DataTemplate Class

Describe la estructura visual de un objeto de datos.

Herencia

Object
  DependencyObject
    FrameworkTemplate
      DataTemplate

Sintaxis


public class DataTemplate : FrameworkTemplate


<DataTemplate ...>
  templateContent
</DataTemplate>
 


XAML Values

templateContent

Árbol de objetos que define esta instancia de DataTemplate. El árbol debe tener un elemento raíz único y ese elemento raíz puede tener cero o más elementos secundarios.

Atributos

[MarshalingBehavior(Agile)]
[Threading(Both)]
[Version(0x06020000)]
[WebHostHidden()]

Members

A continuación se indican los tipos de miembros de DataTemplate (Clase):

Constructores

A continuación se indican los constructores de DataTemplate (Clase).

ConstructorDescripción
DataTemplate Initializes a new instance of the DataTemplate class.

 

Métodos

The DataTemplate Clase tiene estos métodos. También hereda métodos de Object Clase.

MétodoDescripción
ClearValue Clears the local value of a dependency property. (Se hereda de DependencyObject)
GetAnimationBaseValue Returns any base value established for a dependency property, which would apply in cases where an animation is not active. (Se hereda de DependencyObject)
GetValue Returns the current effective value of a dependency property from a DependencyObject. (Se hereda de DependencyObject)
LoadContent Creates the UIElement objects in the DataTemplate.
ReadLocalValue Returns the local value of a dependency property, if a local value is set. (Se hereda de DependencyObject)
SetValue Sets the local value of a dependency property on a DependencyObject. (Se hereda de DependencyObject)

 

Propiedades

DataTemplateClase tiene estas propiedades.

PropiedadTipo de accesoDescripción

Dispatcher

De sólo lecturaGets the CoreDispatcher that this object is associated with. (Se hereda de DependencyObject)

 

Comentarios

Normalmente se utiliza DataTemplate para especificar la representación visual de los datos. Los objetos DataTemplate resultan particularmente útiles al enlazar un control ItemsControl como ListBox a una colección completa. Sin instrucciones concretas, un control ListBox muestra la representación de cadena de los objetos de una colección. En ese caso, puede utilizar un objeto DataTemplate para definir la apariencia de los objetos de datos. El contenido de DataTemplate se convierte en la estructura visual de los objetos de datos.

Puede utilizar el enlace de datos en DataTemplate. Por ejemplo, suponga que ListBox está enlazado a una colección de objetos Customer y tiene la propiedad ItemTemplate establecida en DataTemplate. Al crear ListBox, se crea un ListBoxItem para cada Customer de la colección y el DataContext del ListBoxItem se establece en el cliente adecuado. En otras palabras, la propiedad DataContext del primer ListBoxItem está establecida en el primer cliente, la propiedad DataContext del segundo ListBoxItem está establecida en el segundo cliente, etc. Puede enlazar elementos de DataTemplate a propiedades del objeto Customer.

También puede utilizar una DataTemplate para compartir objetos UIElement entre varios objetos ContentControl. Por ejemplo, suponga que necesita que varios botones de la aplicación tengan el mismo gráfico. Puede crear una DataTemplate que contiene el gráfico y utilizarla como ContentTemplate para los botones.

Puede colocar DataTemplate como elemento secundario directo de un elemento de propiedad ItemTemplate en XAML. También puede definir una DataTemplate como un recurso y, a continuación, hacer referencia al recurso como el valor de la propiedad ItemTemplate. El uso de XAML que define el contenido para crear una plantilla de datos no se expone como una propiedad configurable. Es un comportamiento especial integrado en el procesamiento XAML de un elemento de objeto DataTemplate.

Ejemplos

En el ejemplo siguiente se utiliza DataTemplate para presentar los elementos de ListBox. En este ejemplo, ListBox está enlazado a una colección de objetos Customer. DataTemplate contiene controles TextBlock que están enlazados a las propiedades FirstName, LastName y Address. Para obtener más información sobre el enlace de datos, vea Introducción al enlace de datos.


<Grid>
    <Grid.Resources>
        <src:Customers x:Key="customers"/>
    </Grid.Resources>

    <ListBox ItemsSource="{StaticResource customers}" Width="350" Margin="0,5,0,10">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <StackPanel Orientation="Horizontal">
                    <TextBlock Padding="5,0,5,0"
          Text="{Binding FirstName}" />
                    <TextBlock Text="{Binding LastName}" />
                    <TextBlock Text=", " />
                    <TextBlock Text="{Binding Address}" />
                </StackPanel>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>
</Grid>


En el ejemplo siguiente se muestra la clase Customer y la colección ListBox a la que está enlazado.


public class Customer
{
    public String FirstName { get; set; }
    public String LastName { get; set; }
    public String Address { get; set; }

    public Customer(String firstName, String lastName, String address)
    {
        this.FirstName = firstName;
        this.LastName = lastName;
        this.Address = address;
    }

}

public class Customers : ObservableCollection<Customer>
{
    public Customers()
    {
        Add(new Customer("Michael", "Anderberg",
                "12 North Third Street, Apartment 45"));
        Add(new Customer("Chris", "Ashton",
                "34 West Fifth Street, Apartment 67"));
        Add(new Customer("Cassie", "Hicks",
                "56 East Seventh Street, Apartment 89"));
        Add(new Customer("Guido", "Pica",
                "78 South Ninth Street, Apartment 10"));
    }

}


Requisitos

Cliente mínimo admitido

Windows 8 [Solo aplicaciones de la Tienda Windows]

Servidor mínimo admitido

Windows Server 2012 [Solo aplicaciones de la Tienda Windows]

Espacio de nombres

Windows.UI.Xaml
Windows::UI::Xaml [C++]

Metadatos

Windows.winmd

Vea también

FrameworkTemplate
ItemsControl.ItemTemplate
ContentControl.ContentTemplate
Referencias de ResourceDictionary y recurso XAML

 

 

Mostrar:
© 2014 Microsoft