Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Code-behind adalah istilah yang digunakan untuk menjelaskan kode yang digabungkan dengan objek yang ditentukan oleh markup, ketika halaman XAML dikompilasi menggunakan markup. Topik ini menjelaskan persyaratan untuk code-behind serta mekanisme kode sebaris alternatif untuk kode di XAML.
Topik ini berisi bagian berikut:
Prasyarat
Topik ini mengasumsikan bahwa Anda telah membaca XAML di WPF dan memiliki beberapa pengetahuan dasar tentang CLR dan pemrograman berorientasi objek.
Code-Behind dan Bahasa XAML
Bahasa XAML mencakup fitur tingkat bahasa yang memungkinkan untuk mengaitkan file kode dengan file markup, dari sisi file markup. Secara khusus, bahasa XAML mendefinisikan fitur bahasa x:Class Directive, x:Subclass Directive, dan x:ClassModifier Directive. Persis bagaimana kode harus diproduksi, dan cara mengintegrasikan markup dan kode, bukan bagian dari apa yang ditentukan bahasa XAML. Diserahkan kepada kerangka kerja seperti WPF untuk menentukan cara mengintegrasikan kode, cara menggunakan XAML dalam aplikasi dan model pemrograman, serta tindakan pembangunan atau dukungan lain yang diperlukan oleh semua ini.
Persyaratan Code-behind, Event Handler, dan Partial Class di WPF
Kelas parsial harus berasal dari tipe yang menjadi dasar elemen akar.
Perhatikan bahwa di bawah perilaku default tindakan kompilasi build markup, Anda dapat membiarkan derivasi kosong dalam definisi kelas parsial pada bagian code-behind. Hasil yang dikompilasi akan mengasumsikan tipe dasar dari halaman induk sebagai basis untuk kelas parsial, bahkan jika tidak ditentukan. Namun, mengandalkan perilaku ini bukanlah praktik terbaik.
Penanganan aktivitas yang Anda tulis di code-behind harus berupa metode instans dan tidak dapat menjadi metode statis. Metode ini harus didefinisikan oleh kelas parsial dalam namespace CLR yang diidentifikasi oleh
x:Class. Anda tidak dapat menentukan nama penangan kejadian untuk menginstruksikan prosesor XAML mencari penangan kejadian untuk pengkabelan event dalam cakupan kelas yang berbeda.Handler harus sesuai dengan delegasi untuk event yang tepat dalam sistem tipe pendukung.
Untuk bahasa Microsoft Visual Basic secara khusus, Anda dapat menggunakan kata kunci
Handleskhusus bahasa untuk mengaitkan handler dengan instans dan peristiwa dalam deklarasi handler, alih-alih melampirkan handler dengan atribut di XAML. Namun, teknik ini memang memiliki beberapa batasan karena kata kunciHandlestidak dapat mendukung semua fitur tertentu dari sistem peristiwa WPF, seperti skenario peristiwa tertentu yang dirutekan atau peristiwa terlampir. Untuk detailnya, lihat Visual Basic dan WPF Event Handling.
x:Code
x:Code adalah elemen direktif yang ditentukan dalam XAML. Elemen direktif x:Code dapat berisi kode pemrograman sebaris. Kode yang didefinisikan sebaris dapat berinteraksi dengan XAML pada halaman yang sama. Contoh berikut mengilustrasikan kode C# sebaris. Perhatikan bahwa kode berada di dalam elemen x:Code dan bahwa kode harus dikelilingi oleh <CDATA[...]]> untuk melepaskan konten untuk XML, sehingga prosesor XAML (menafsirkan skema XAML atau skema WPF) tidak akan mencoba menafsirkan konten secara harfiah sebagai XML.
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="MyNamespace.MyCanvasCodeInline"
>
<Button Name="button1" Click="Clicked">Click Me!</Button>
<x:Code><![CDATA[
void Clicked(object sender, RoutedEventArgs e)
{
button1.Content = "Hello World";
}
]]></x:Code>
</Page>
Pembatasan Kode Baris Tunggal
Sebaiknya Anda menghindari atau membatasi penggunaan kode sebaris. Dalam hal arsitektur dan filosofi pengkodean, mempertahankan pemisahan antara markup dan code-behind membuat peran perancang dan pengembang jauh lebih berbeda. Pada tingkat yang lebih teknis, penulisan kode sebaris bisa terasa canggung, karena Anda selalu menuliskannya ke dalam kelas parsial yang dihasilkan oleh XAML, dan hanya dapat menggunakan namespace XML default. Karena Anda tidak dapat menambahkan pernyataan using, Anda harus sepenuhnya memenuhi syarat banyak panggilan API yang Anda buat. Pemetaan WPF default mencakup sebagian besar tetapi tidak semua namespace CLR yang ada di rakitan WPF; Anda harus sepenuhnya memenuhi syarat panggilan ke jenis dan anggota yang terkandung dalam namespace CLR lainnya. Anda juga tidak dapat menentukan apa pun di luar kelas parsial dalam kode sebaris, dan semua entitas kode pengguna yang Anda referensikan harus ada sebagai anggota atau variabel dalam kelas parsial yang dihasilkan. Fitur pemrograman khusus bahasa lain, seperti makro atau #ifdef terhadap variabel global atau variabel build, juga tidak tersedia. Untuk informasi selengkapnya, lihat x:Code Intrinsic XAML Type.
Lihat juga
.NET Desktop feedback