ItemsControl.ItemTemplate Proprietà
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Ottiene o imposta l'oggetto DataTemplate usato per visualizzare ogni elemento.
public:
property System::Windows::DataTemplate ^ ItemTemplate { System::Windows::DataTemplate ^ get(); void set(System::Windows::DataTemplate ^ value); };
[System.ComponentModel.Bindable(true)]
public System.Windows.DataTemplate ItemTemplate { get; set; }
[<System.ComponentModel.Bindable(true)>]
member this.ItemTemplate : System.Windows.DataTemplate with get, set
Public Property ItemTemplate As DataTemplate
Valore della proprietà
Oggetto DataTemplate che specifica la visualizzazione degli oggetti dati. Il valore predefinito è null
.
- Attributi
Esempio
Nell'esempio seguente viene illustrato come creare un'inline DataTemplate . Specifica DataTemplate che ogni elemento dati viene visualizzato come tre TextBlock elementi all'interno di un StackPaneloggetto . In questo esempio l'oggetto dati è una classe denominata Task
. Si noti che ogni TextBlock elemento in questo modello è associato a una proprietà della Task
classe.
<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>
È più comune definire un DataTemplate oggetto nella sezione risorse in modo che possa essere un oggetto riutilizzabile, come nell'esempio seguente:
<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>
È possibile a questo punto usare myTaskTemplate
come risorsa, come illustrato nell'esempio seguente:
<ListBox Width="400" Margin="10"
ItemsSource="{Binding Source={StaticResource myTodoList}}"
ItemTemplate="{StaticResource myTaskTemplate}"/>
Per l'esempio completo, vedere Introduction to Data Templating Sample (Introduzione a un esempio di applicazione di modello).
Commenti
Usare per ItemTemplate specificare la visualizzazione degli oggetti dati. Se l'oggetto ItemsControl è associato a un oggetto raccolta e non vengono fornite istruzioni di visualizzazione specifiche usando un DataTemplateoggetto , l'interfaccia utente risultante di ogni elemento è una rappresentazione stringa di ogni oggetto nell'insieme sottostante.
Quando si imposta un oggetto ItemTemplate in un ItemsControloggetto , l'interfaccia utente viene generata come indicato di seguito (usando come ListBox esempio):
Durante la generazione del contenuto, viene ItemsPanel avviata una richiesta per ItemContainerGenerator creare un contenitore per ogni elemento dati. Per ListBox, il contenitore è un ListBoxItemoggetto . Il generatore richiama nuovamente nell'oggetto ItemsControl per preparare il contenitore.
Parte della preparazione comporta la copia dell'oggetto ItemTemplateListBox da includere nell'oggetto ContentTemplate .ListBoxItem
Analogamente a tutti i ContentControl tipi, l'oggetto ControlTemplate di un ListBoxItem oggetto contiene un ContentPresenteroggetto . Quando viene applicato il modello, crea un ContentPresenter oggetto il cui ContentTemplate oggetto è associato all'oggetto ContentTemplateListBoxItem.
Infine, si ContentPresenter applica a ContentTemplate se stesso e che crea l'interfaccia utente.
Se sono presenti più di una DataTemplate definita e si vuole fornire la logica a livello di codice per scegliere e applicare a livello di codice una DataTemplateproprietà , usare la ItemTemplateSelector proprietà .
Offre ItemsControl una grande flessibilità per la personalizzazione visiva e offre molti stili e proprietà di templating. Utilizzare la proprietà o la ItemContainerStyleItemContainerStyleSelector proprietà per impostare uno stile per influire sull'aspetto degli elementi che contengono gli elementi di dati. Ad esempio, per ListBox, i contenitori generati sono ListBoxItem controlli; per ComboBox, sono ComboBoxItem controlli. Per influire sul layout degli elementi, usare la ItemsPanel proprietà . Se si usa il raggruppamento sul controllo, è possibile usare la GroupStyle proprietà o GroupStyleSelector .
Per altre informazioni, vedere Panoramica del templating dei dati.
Uso della sintassi XAML per gli attributi
<object ItemTemplate=" ResourceExtension TemplateResourceKey"/>
Valori XAML
ResourceExtension
Uno dei seguenti: Estensione markup StaticResource o Estensione markup DynamicResource. A meno che gli stili stessi contengano riferimenti a potenziali riferimenti di runtime, ad esempio risorse di sistema o preferenze utente, il riferimento all'estensione di markup StaticResource a uno stile è in genere consigliato per le prestazioni.
TemplateResourceKey
Valore stringa di direttiva x:Key che fa riferimento al modello richiesto come risorsa.
Informazioni proprietà di dipendenza
Campo Identificatore | ItemTemplateProperty |
Proprietà dei metadati impostate su true |
Nessuno |
Si applica a
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per