يعد المكون الإضافي MVVMCROSS.Plugin.FieldBinding جزءًا من امتدادات RIO لربط MVVMCROSS ، المصمم لتعزيز قدرات ربط البيانات من خلال السماح باستخدام الحقول كمصادر بيانات إلى جانب الخصائص. فيما يلي الميزات الرئيسية لهذا البرنامج المساعد:
1. ربط البيانات المستندة إلى الميدان: تقليديًا ، يعتمد ربط بيانات MVVMCROSS على الخصائص. ومع ذلك ، باستخدام المكون الإضافي الملحوظ ، يمكنك استخدام الحقول العامة في ViewModel كمصادر لربط البيانات. هذه المرونة مفيدة بشكل خاص عندما تريد الربط مباشرة إلى الحقول دون الحاجة إلى خصائص [1] [4].
2. دعم inotifyChanged للحقول: يدعم المكون الإضافي استخدام "inotifyChanged" للحقول الديناميكية. هذا يعني أن الحقول يمكنها إخطار واجهة المستخدم حول التغييرات ، على غرار كيفية قيام الخصائص بـ "inotifyPropertyChanged". يتم تحقيق ذلك من خلال استخدام فئات مثل `inc` (تم تغيير الإخطار) ، والتي يمكن استخدامها لإنشاء حقول يمكن ملاحظتها [1].
3. التوافق ودعم النظام الأساسي: يعد المكون الإضافي للملاحظة الملحقة مكونًا إضافيًا .NET قياسي ، مما يجعله متوافقًا عبر مختلف الأنظمة الأساسية التي تدعمها MVVMcross ، بما في ذلك Xamarin IOS و Xamarin Android و Xamarin و Windows و Mac [1] [7].
4. التكامل مع الإضافات الأخرى: يمكن استخدام المكون الإضافي الملحوظ بالتعاون مع الإضافات الأخرى MVVMCROSS ، مثل MVVMCROSS.PLUGIN.ALL Package ، والتي تتضمن جميع ملحقات MVVMCROSS ، و MVVMCROSS.PLUGINS.VALIDATION.FORFILEDBING ، والتي توفر دعمًا للتأكد من صحة الروابط [7].
5. الاستخدام في ViewModels: في ViewModels ، يمكنك تحديد الحقول باستخدام فئات مثل "INC" وربطها مباشرة بعناصر واجهة المستخدم. على سبيل المثال ، يمكنك إنشاء حقول مثل `public readonly inc id = جديد nc () ؛` وربطها بمكونات واجهة المستخدم باستخدام بناء جملة ربط mvvvmcross [1].
6. بناء جملة الربط: يدعم المكون الإضافي بناء جملة التجليد المختلفة ، بما في ذلك الارتباطات المستندة إلى XML لنظام Android والروابط بطلاقة للمنصات مثل iOS. على سبيل المثال ، يمكنك ربط "TextView" في Android باستخدام XML مثل `local: mvxbind = 'text firstName' [1] [4].
بشكل عام ، يوفر المكون الإضافي MVVMCROSS.Plugin.FieldBinding مقاربة أكثر مرونة لربط البيانات من خلال السماح باستخدام الحقول ، والتي يمكن أن تبسيط سيناريوهات معينة وتحسين قابلية قراءة التعليمات البرمجية.
الاستشهادات:[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.mvvmcross.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.mvvmcross.com/documentation/fundamentals/logging-new