MVVMcross.plugin.fieldbinding ปลั๊กอินเป็นส่วนหนึ่งของส่วนขยายที่มีผลผูกพัน RIO สำหรับ MVVMcross ออกแบบมาเพื่อเพิ่มความสามารถในการเชื่อมโยงข้อมูลโดยอนุญาตให้ใช้ฟิลด์เป็นแหล่งข้อมูลควบคู่ไปกับคุณสมบัติ นี่คือคุณสมบัติหลักของปลั๊กอินนี้:
1. การเชื่อมโยงข้อมูลตามฟิลด์: โดยทั่วไปแล้วการเชื่อมโยงข้อมูล MVVMCROSS ขึ้นอยู่กับคุณสมบัติ อย่างไรก็ตามด้วยปลั๊กอิน Fieldbinding คุณสามารถใช้ฟิลด์สาธารณะใน ViewModel ของคุณเป็นแหล่งที่มาสำหรับการเชื่อมโยงข้อมูล ความยืดหยุ่นนี้มีประโยชน์อย่างยิ่งเมื่อคุณต้องการผูกโดยตรงกับฟิลด์โดยไม่จำเป็นต้องมีคุณสมบัติ [1] [4]
2. การสนับสนุน InotifyChanged สำหรับฟิลด์: ปลั๊กอินรองรับการใช้ `inotifyChanged` สำหรับฟิลด์ไดนามิก ซึ่งหมายความว่าฟิลด์สามารถแจ้ง UI เกี่ยวกับการเปลี่ยนแปลงซึ่งคล้ายกับคุณสมบัติที่ทำกับ `inotifypropertychanged ' นี่คือความสำเร็จผ่านการใช้คลาสเช่น `Inc` (แจ้งเตือนการเปลี่ยนแปลง) ซึ่งสามารถใช้ในการสร้างฟิลด์ที่สังเกตได้ [1]
3. ความเข้ากันได้และการรองรับแพลตฟอร์ม: ปลั๊กอิน Fieldbinding เป็นปลั๊กอินมาตรฐาน. NET บริสุทธิ์ทำให้เข้ากันได้กับแพลตฟอร์มต่างๆที่รองรับโดย MVVMcross รวมถึง Xamarin iOS, Xamarin Android, Xamarin Forms, Windows และ Mac [1] [7]
4. การรวมกับปลั๊กอินอื่น ๆ : ปลั๊กอิน Fieldbinding สามารถใช้ร่วมกับปลั๊กอิน MVVMCROSS อื่น ๆ เช่น MVVMCROSS.PLUGIN.ALL แพ็คเกจทั้งหมดซึ่งรวมถึงปลั๊กอิน MVVMCROSS ทั้งหมดและ MVVMCROSS.PLUGINS.VALITION
5. การใช้งานใน ViewModels: ใน ViewModels คุณสามารถกำหนดฟิลด์โดยใช้คลาสเช่น `Inc` และผูกไว้โดยตรงกับองค์ประกอบ UI ตัวอย่างเช่นคุณสามารถสร้างฟิลด์เช่น `สาธารณะ readonly inc id = new nc ();` และผูกไว้กับส่วนประกอบ UI โดยใช้ไวยากรณ์การเชื่อมโยง MVVMcross [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