ItemsControl.ItemTemplate Properti
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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):
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.
Bagian dari persiapan melibatkan penyalinan ItemTemplate dari ListBox yang akan menjadi ContentTemplate dari ListBoxItem.
Mirip dengan semua ContentControl jenis, ControlTemplate dari berisi ListBoxItemContentPresenter. Ketika templat diterapkan, templat akan membuat yang ContentPresenterContentTemplate terikat ke ContentTemplate dari ListBoxItem.
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 |