Plugin MVVMCross.plugin.Fieldbinding adalah bagian dari ekstensi pengikatan RIO untuk MVVMCross, yang dirancang untuk meningkatkan kemampuan pengikatan data dengan memungkinkan bidang untuk digunakan sebagai sumber data di samping properti. Berikut adalah fitur utama plugin ini:
1. Ikatan data berbasis lapangan: Secara tradisional, pengikatan data MVVMCross bergantung pada properti. Namun, dengan plugin fieldbinding, Anda dapat menggunakan bidang publik di ViewModel Anda sebagai sumber untuk pengikatan data. Fleksibilitas ini sangat berguna ketika Anda ingin mengikat langsung ke bidang tanpa perlu properti [1] [4].
2. Dukungan InotifyChanged untuk bidang: Plugin mendukung penggunaan `inotifychanged` untuk bidang dinamis. Ini berarti bahwa bidang dapat memberi tahu UI tentang perubahan, mirip dengan bagaimana properti dilakukan dengan `inotifypropertychanged`. Ini dicapai melalui penggunaan kelas -kelas seperti `inc` (Notify Changed), yang dapat digunakan untuk membuat bidang yang dapat diamati [1].
3. Kompatibilitas dan Dukungan Platform: Plugin Fieldbinding adalah plugin .NET standar.
4. Integrasi dengan plugin lain: Plugin fieldbinding dapat digunakan bersama dengan plugin MVVMCross lainnya, seperti paket mvvmcross.plugin.all, yang mencakup semua plugin mvvmcross, dan mvvmcross.plugins.validation.forfieldbinding, yang menyediakan dukungan validasi untuk binding lapangan [7].
5. Penggunaan di ViewModels: Di ViewModels, Anda dapat mendefinisikan bidang menggunakan kelas seperti `inc` dan mengikatnya langsung ke elemen UI. Misalnya, Anda dapat membuat bidang seperti `public readonly inc id = new nc ();` dan mengikatnya ke komponen UI menggunakan sintaks pengikat mvvmcross [1].
6. Sintaks Binding: Plugin ini mendukung berbagai sintaksis pengikat, termasuk binding berbasis XML untuk ikatan android dan fasih untuk platform seperti iOS. Misalnya, Anda dapat mengikat `TextView` di Android menggunakan XML seperti` lokal: mvxbind = 'text firstName' [1] [4].
Secara keseluruhan, plugin mvvmcross.plugin.fieldbinding menawarkan pendekatan yang lebih fleksibel untuk pengikatan data dengan memungkinkan penggunaan bidang, yang dapat menyederhanakan skenario tertentu dan meningkatkan keterbacaan kode.
Kutipan:[1] https://www.mvvmcross.com/documentation/plugins/fieldbinding
[2] https://www.mvvmcross.com/documentation/advanced/customizing-using-app-and-setup
[3] https://www.mvvmcross.com/mvvmcross-5-release/
[4] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[5] https://www.mvmcross.com/documentation/fundamentals/viewmodel-lifecycle
[6] https://github.com/mvvmcross/mvvmcross/issues/2607
[7] https://www.nuget.org/packages/mvvmcross.plugin.fieldbinding/
[8] https://www.mvmcross.com/documentation/fundamentals/logging-new