DataTemplate Class

Descrive la struttura visiva di un oggetto dati.

Ereditarietà

Object
  DependencyObject
    FrameworkTemplate
      DataTemplate

Sintassi


public class DataTemplate : FrameworkTemplate


<DataTemplate ...>
  templateContent
</DataTemplate>
 


XAML Values

templateContent

Struttura ad albero di oggetti che definisce l'oggetto DataTemplate. La struttura ad albero deve disporre di un singolo elemento radice e tale elemento radice può avere zero o più elementi figlio.

Attributi

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

Membri

DataTemplateClasse include questi tipi di membri:

Costruttori

DataTemplateClasse include questi costruttori.

CostruttoreDescrizione
DataTemplate Initializes a new instance of the DataTemplate class.

 

Metodi

The DataTemplate Classe dispone di tali metodi. Eredita inoltre i metodi da Object Classe.

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

 

Proprietà

Classe dispone di tali proprietà. di DataTemplate

ProprietàTipo di accessoDescrizione

Dispatcher

Sola letturaGets the CoreDispatcher that this object is associated with. (Ereditata da DependencyObject)

 

Note

Per specificare la rappresentazione visiva dei dati viene generalmente utilizzato un oggetto DataTemplate. Gli oggetti DataTemplate sono particolarmente utili quando si associa un ItemsControl, come ad esempio ListBox, a un'intera raccolta. Senza istruzioni specifiche, un oggetto ListBox visualizza la rappresentazione di stringa degli oggetti di una raccolta. In tal caso, è possibile utilizzare un oggetto DataTemplate per definire l'aspetto degli oggetti dati. Il contenuto dell'oggetto DataTemplate diventa la struttura visiva degli oggetti dati.

È possibile utilizzare l'associazione dati in un oggetto DataTemplate. Si supponga, ad esempio, che un oggetto ListBox sia associato a una raccolta di oggetti Customer e che la relativa proprietà ItemTemplate sia impostata su DataTemplate. Quando viene creato l'oggetto ListBox, viene creato un oggetto ListBoxItem per ogni oggetto Customer nella raccolta e l'oggetto DataContext dell'oggetto ListBoxItem viene impostato sul cliente appropriato. In altre parole, l'oggetto DataContext del primo ListBoxItem viene impostato sul primo cliente, l'oggetto DataContext del secondo ListBoxItem viene impostato sul secondo cliente e così via. È possibile associare gli elementi nell'oggetto DataTemplate alle proprietà dell'oggetto Customer.

È inoltre possibile utilizzare un oggetto DataTemplate per condividere gli oggetti UIElement tra più oggetti ContentControl. Si supponga, ad esempio, di volere utilizzare la stessa immagine per più pulsanti dell'applicazione. È possibile creare un oggetto DataTemplate contenente l'immagine e utilizzarlo come oggetto ContentTemplate per i pulsanti.

È possibile impostare un oggetto DataTemplate come figlio diretto dell'elemento di una proprietà ItemTemplate in XAML. È inoltre possibile definire un oggetto DataTemplate come risorsa e, successivamente, fare riferimento alla risorsa come valore della proprietà ItemTemplate. La sintassi XAML che definisce il contenuto per la creazione di un modello di dati non è esposta come una proprietà che è possibile impostare. Si tratta di un comportamento speciale incorporato nell'elaborazione XAML di un elemento oggetto DataTemplate.

Esempi

Nell'esempio seguente viene utilizzato un oggetto DataTemplate per visualizzare gli elementi di un oggetto ListBox. In questo esempio, l'oggetto ListBox è associato a una raccolta di oggetti Customer. DataTemplate contiene controlli TextBlock associati alle proprietà FirstName, LastName e Address. Per ulteriori informazioni sull'associazione dati, vedere Cenni preliminari sull'associazione dati.


<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>


Nell'esempio seguente vengono illustrate la classe Customer e la raccolta a cui è associato l'oggetto ListBox.


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"));
    }

}


Requisiti

Client supportato minimo

Windows 8 [Solo applicazioni Windows Store]

Server supportato minimo

Windows Server 2012 [Solo applicazioni Windows Store]

Spazio dei nomi

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

Metadati

Windows.winmd

Vedere anche

FrameworkTemplate
ItemsControl.ItemTemplate
ContentControl.ContentTemplate
Riferimenti di ResourceDictionary e risorse XAML

 

 

Mostra:
© 2014 Microsoft