Bagikan melalui


x:Arahan FieldModifier

Memodifikasi perilaku kompilasi XAML sehingga bidang untuk referensi objek bernama didefinisikan dengan TypeAttributes.Public akses alih-alih TypeAttributes.NotPublic perilaku default.

Penggunaan Atribut XAML

<object x:FieldModifier="Public".../>

Nilai XAML

Nilai Deskripsi
Publik String yang Anda berikan untuk menentukan TypeAttributes.Public versus TypeAttributes.NotPublic bervariasi, tergantung pada bahasa pemrograman code-behind yang digunakan. Lihat Keterangan.

Dependensi

Jika produksi XAML digunakan x:FieldModifier di mana saja, elemen akar dari produksi XAML tersebut harus mendeklarasikan x:Class Directive.

Keterangan

x:FieldModifier tidak relevan untuk mendeklarasikan tingkat akses umum kelas atau anggotanya. Ini hanya relevan untuk perilaku pemrosesan XAML ketika objek XAML tertentu yang merupakan bagian dari produksi XAML diproses, dan menjadi objek yang berpotensi dapat diakses dalam grafik objek aplikasi. Secara default, referensi bidang untuk objek tersebut dijaga kerahasiaannya, yang mencegah konsumen kontrol memodifikasi grafik objek secara langsung. Sebaliknya, konsumen kontrol diharapkan untuk memodifikasi grafik objek dengan menggunakan pola standar yang diaktifkan oleh model pemrograman, seperti dengan mendapatkan akar tata letak, koleksi elemen anak, properti publik khusus, dan sebagainya.

Nilai untuk x:FieldModifier atribut bervariasi menurut bahasa pemrograman, dan tujuannya dapat bervariasi dalam kerangka kerja tertentu. String yang akan digunakan tergantung pada bagaimana setiap bahasa mengimplementasikannya CodeDomProvider dan pengonversi jenis yang dikembalikannya untuk menentukan arti untuk TypeAttributes.Public dan TypeAttributes.NotPublic, dan apakah bahasa tersebut peka huruf besar/kecil.

  • Untuk C#, string yang akan diteruskan ke yang ditunjuk TypeAttributes.Public adalah public.

  • Untuk Microsoft Visual Basic .NET, string yang akan diteruskan ke yang ditunjuk TypeAttributes.Public adalah Public.

  • Untuk C++/CLI, saat ini tidak ada target untuk XAML; oleh karena itu, string yang akan dilewatkan tidak terdefinisi.

Anda juga dapat menentukan TypeAttributes.NotPublic (internal dalam C#, Friend di Visual Basic) tetapi menentukan TypeAttributes.NotPublic tidak biasa karena NotPublic perilaku sudah menjadi default.

TypeAttributes.NotPublic adalah perilaku default karena jarang kode di luar rakitan yang mengkompilasi XAML memerlukan akses ke elemen yang dibuat XAML. Arsitektur keamanan WPF bersama dengan perilaku kompilasi XAML tidak akan mendeklarasikan bidang yang menyimpan instans elemen sebagai publik, kecuali Anda secara khusus mengatur x:FieldModifier untuk mengizinkan akses publik.

x:FieldModifier hanya relevan untuk elemen dengan x:Name Directive karena nama tersebut digunakan untuk mereferensikan bidang setelah publik.

Secara default, kelas parsial untuk elemen akar bersifat publik; namun, Anda dapat membuatnya nonpublik dengan menggunakan x:ClassModifier Directive. Direktif x:ClassModifier juga memengaruhi tingkat akses instans kelas elemen akar. Anda dapat menempatkan dan x:Namex:FieldModifier pada elemen akar, tetapi ini hanya membuat salinan bidang publik dari elemen akar, dengan tingkat akses kelas elemen root yang sebenarnya masih dikendalikan oleh x:ClassModifier Directive.

Baca juga