Bagikan melalui


x:Arahan Subkelas

Memodifikasi perilaku kompilasi markup XAML ketika x:Class juga disediakan. Alih-alih membuat kelas parsial yang didasarkan pada x:Class, yang disediakan x:Class dibuat sebagai kelas menengah, dan kemudian kelas turunan yang Anda berikan diharapkan didasarkan pada x:Class.

Penggunaan Atribut XAML

<object x:Class="namespace.classname" x:Subclass="subclassNamespace.subclassName">
   ...
</object>

Nilai XAML

Nilai Deskripsi
namespace Opsional. Menentukan namespace CLR yang berisi classname. Jika namespace ditentukan, titik (.) memisahkan namespace dan classname.
classname Harus diisi. Menentukan nama CLR dari kelas parsial yang menghubungkan XAML yang dimuat dan kode Anda di belakang untuk XAML tersebut. Lihat Keterangan.
subclassNamespace Opsional. Dapat berbeda dari namespace jika setiap namespace dapat menyelesaikan yang lain. Menentukan namespace CLR yang berisi subclassName. Jika subclassName ditentukan, titik (.) memisahkan subclassNamespace dan subclassName.
subclassName Harus diisi. Menentukan nama CLR subkelas.

Dependensi

x:Class Directive juga harus disediakan pada objek yang sama, dan objek tersebut harus menjadi elemen akar dari produksi XAML.

Keterangan

x:Subclass penggunaan terutama ditujukan untuk bahasa yang tidak mendukung deklarasi kelas parsial.

Kelas yang x:Subclass digunakan sebagai tidak dapat menjadi kelas berlapis, dan x:Subclass harus merujuk ke objek akar seperti yang dijelaskan di bagian "Dependensi".

Jika tidak, makna x:Subclass konseptual tidak ditentukan oleh implementasi .NET XAML Services. Ini karena perilaku Layanan XAML .NET tidak menentukan model pemrograman keseluruhan di mana markup XAML dan kode cadangan terhubung. Implementasi konsep lebih lanjut yang terkait x:Class dengan dan x:Subclass dilakukan oleh kerangka kerja tertentu yang menggunakan model pemrograman atau model aplikasi untuk menentukan cara menghubungkan markup XAML, markup yang dikompilasi, dan kode berbasis CLR di belakang. Setiap kerangka kerja mungkin memiliki tindakan build sendiri yang memungkinkan beberapa perilaku, atau komponen tertentu yang harus disertakan dalam lingkungan build. Dalam kerangka kerja, tindakan build juga dapat bervariasi berdasarkan bahasa CLR tertentu yang digunakan untuk kode di belakang.

Catatan Penggunaan WPF

x:Subclass dapat berada di akar halaman atau pada Application akar dalam definisi aplikasi, yang sudah memiliki x:Class. Mendeklarasikan x:Subclass pada elemen apa pun selain halaman atau akar aplikasi, atau menentukannya di mana tidak x:Class ada, menyebabkan kesalahan waktu kompilasi.

Membuat kelas turunan yang berfungsi dengan benar untuk x:Subclass skenario ini cukup kompleks. Anda mungkin perlu memeriksa file perantara (file .g yang diproduksi di folder obj proyek Anda dengan kompilasi markup, dengan nama yang menggabungkan nama file .xaml). File perantara ini dapat membantu Anda menentukan asal konstruksi pemrograman tertentu dalam kelas parsial yang bergabung dalam aplikasi yang dikompilasi.

Penanganan aktivitas di kelas turunan harus internal override (Friend Overrides di Microsoft Visual Basic) untuk mengambil alih stub untuk handler seperti yang dibuat di kelas menengah selama kompilasi. Jika tidak, implementasi kelas turunan menyembunyikan (bayangan) implementasi kelas menengah dan penangan kelas menengah tidak dipanggil.

Ketika Anda menentukan dan x:Classx:Subclass, Anda tidak perlu memberikan implementasi apa pun untuk kelas yang dirujuk oleh x:Class. Anda hanya perlu memberinya nama melalui x:Class atribut sehingga pengkompilasi memiliki beberapa panduan untuk kelas yang dibuatnya dalam file perantara (pengkompilasi tidak memilih nama default dalam kasus ini). Anda dapat memberi x:Class kelas implementasi; namun, ini bukan skenario umum untuk menggunakan dan x:Classx:Subclass.

Baca juga