Share via


ItemsControl.ItemTemplate Properti

Definisi

Mendapatkan atau mengatur yang DataTemplate digunakan untuk menampilkan setiap item.

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

Nilai Properti

DataTemplate yang menentukan visualisasi objek data. Default adalah null.

Atribut

Contoh

Contoh berikut menunjukkan cara membuat sebaris DataTemplate . DataTemplate menentukan bahwa setiap item data muncul sebagai tiga TextBlock elemen dalam StackPanel. Dalam contoh ini, objek data adalah kelas yang disebut Task. Perhatikan bahwa setiap TextBlock elemen dalam templat ini terikat ke properti Task kelas .

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

Lebih umum untuk menentukan DataTemplate di bagian sumber daya sehingga dapat menjadi objek yang dapat digunakan kembali, seperti dalam contoh berikut:

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

Sekarang Anda dapat menggunakan myTaskTemplate sebagai sumber daya, seperti dalam contoh berikut:

<ListBox Width="400" Margin="10"
         ItemsSource="{Binding Source={StaticResource myTodoList}}"
         ItemTemplate="{StaticResource myTaskTemplate}"/>

Untuk sampel lengkapnya, lihat Pengenalan Sampel Templat Data.

Keterangan

Anda menggunakan ItemTemplate untuk menentukan visualisasi objek data. Jika Anda ItemsControl terikat ke objek koleksi dan Anda tidak memberikan instruksi tampilan tertentu menggunakan DataTemplate, UI yang dihasilkan dari setiap item adalah representasi string dari setiap objek dalam koleksi yang mendasar.

Saat Anda mengatur ItemTemplate pada ItemsControl, UI dihasilkan sebagai berikut (menggunakan ListBox sebagai contoh):

  1. Selama pembuatan konten, ItemsPanel memulai permintaan untuk ItemContainerGenerator membuat kontainer untuk setiap item data. Untuk ListBox, kontainer adalah ListBoxItem. Generator memanggil kembali ke ItemsControl untuk menyiapkan kontainer.

  2. Bagian dari persiapan melibatkan penyalinan ItemTemplate dari ListBox yang akan menjadi ContentTemplate dari ListBoxItem.

  3. Mirip dengan semua ContentControl jenis, ControlTemplate dari berisi ListBoxItemContentPresenter. Ketika templat diterapkan, templat akan membuat yang ContentPresenterContentTemplate terikat ke ContentTemplate dari ListBoxItem.

  4. Akhirnya, ContentPresenter berlaku itu ContentTemplate untuk dirinya sendiri, dan yang membuat UI.

Jika Anda memiliki lebih dari satu DataTemplate yang ditentukan dan Anda ingin menyediakan logika untuk secara terprogram memilih dan menerapkan DataTemplate, gunakan ItemTemplateSelector properti .

memberikan ItemsControl fleksibilitas yang besar untuk kustomisasi visual dan menyediakan banyak properti gaya dan templat. ItemContainerStyle Gunakan properti atau ItemContainerStyleSelector properti untuk mengatur gaya agar memengaruhi tampilan elemen yang berisi item data. Misalnya, untuk ListBox, kontainer yang dihasilkan adalah ListBoxItem kontrol; untuk ComboBox, kontainer adalah ComboBoxItem kontrol. Untuk memengaruhi tata letak item, gunakan ItemsPanel properti . Jika Anda menggunakan pengelompokan pada kontrol, Anda dapat menggunakan GroupStyle properti atau GroupStyleSelector .

Untuk informasi selengkapnya, lihat Gambaran Umum Templat Data.

Penggunaan Atribut XAML

<object ItemTemplate=" ResourceExtension TemplateResourceKey"/>

Nilai XAML

ResourceExtension Salah satu hal berikut ini: StaticResource Markup Extension, atau DynamicResource Markup Extension. Kecuali gaya itu sendiri berisi referensi ke referensi run-time potensial seperti sumber daya sistem atau preferensi pengguna, referensi Ekstensi Markup StaticResource ke gaya biasanya direkomendasikan untuk performa.

Nilai string TemplateResourceKeyx:Key Directive yang mengacu pada templat yang diminta sebagai sumber daya.

Informasi Properti Dependensi

Bidang pengidentifikasi ItemTemplateProperty
Properti metadata diatur ke true Tidak ada

Berlaku untuk

Lihat juga