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:Class
x: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:Class
x:Subclass
.
Baca juga
.NET Desktop feedback