Sono confuso con l'apprendimento di WPF. Vedo ControlTemplate usato per determinare come appare ogni elemento in una listbox. Non è quello per cui viene usato ItemTemplate nelle listbox? Qual è la differenza?ItemTemplate vs ControlTemplate
risposta
Un ControlTemplate ti permette di modificare l'aspetto & feel dei controlli esistenti, ad esempio, creare un pulsante di tutti i giorni sembrano bottoni di vetro lucido della barra delle applicazioni di Vista o fare una linguetta il controllo sembra il nuovo nastro Office 2007.
L'idea è che il controllo contiene solo il comportamento e la ControlTemplate contiene l'aspetto & feel - in modo da un pulsante è "qualcosa si fa clic su" non "un rettangolo con un certo effetto 3d è possibile fare clic su".
È possibile sostituire il modello di controllo ListBox per ottenere qualcosa come una casella di riepilogo con angoli arrotondati o barre di scorrimento personalizzate.
Un DataTemplate, d'altra parte, consente di controllare il modo in cui le righe di dati visualizzate all'interno di caselle di riepilogo (e altri controlli simili), i modelli di dati vengono utilizzati per specificare elementi come "Mostra cognome, oltre a una virgola e il primo nome - e il cognome dovrebbe essere in grassetto e il nome dovrebbe essere verde se inizia con un A ".
E proprio per completezza c'è anche una classe ItemsPanelTemplate che viene utilizzata per modificare il layout interno di una casella di riepilogo: il libro WPF di Charles Petzold ha un esempio di utilizzo per fare in modo che una normale casella di riepilogo visualizzi gli elementi in una cerchia.
Un ItemTemplate descrive come eseguire il rendering dell'elemento di dati in una casella di riepilogo (ad esempio, è possibile che la casella di riepilogo sia vincolata a un elenco: ItemTemplate consente di specificare come eseguire il rendering di Foo). Un ItemTemplate è un DataTemplate.
Un ControlTemplate descrive come il ListBox stesso dovrebbe essere reso
grazie per l'indicazione ItemTemplate è un DataTemplate – Felix
Correlato: [Differenza tra stile e ControlTemplate] (http://stackoverflow.com/questions/6136200/difference-between-style-and-controltemplate) – Helen