El complemento MVVMCross.Plugin.FieldBinding es parte de las extensiones de unión de RIO para MVVMCross, diseñado para mejorar las capacidades de enlace de datos al permitir que los campos se utilicen como fuentes de datos junto con las propiedades. Estas son las características principales de este complemento:
1. Enlace de datos basado en el campo: tradicionalmente, la unión de datos MVVMCross se basa en las propiedades. Sin embargo, con el complemento de unión de campo, puede usar campos públicos en su modelado ViewModel como fuentes de enlace de datos. Esta flexibilidad es particularmente útil cuando desea unirse directamente a los campos sin la necesidad de propiedades [1] [4].
2. Soporte de InotifyChanged para campos: el complemento admite el uso de `inotifyChanged` para campos dinámicos. Esto significa que los campos pueden notificar a la interfaz de usuario sobre los cambios, similar a cómo las propiedades lo hacen con 'inotifypropertychanged`. Esto se logra mediante el uso de clases como `Inc` (notificar cambiado), que puede usarse para crear campos observables [1].
3. Compatibilidad y soporte de plataforma: el complemento de encuadernación de campo es un complemento estándar de .NET puro, lo que lo hace compatible en varias plataformas compatibles con MVVMCross, incluidos Xamarin IOS, Xamarin Android, Forms de Xamarin, Windows y Mac [1] [7].
4. Integración con otros complementos: el complemento de famseding se puede utilizar junto con otros complementos MVVMCross, como el paquete mvvmcross.plugin.all, que incluye todos los complementos MVVMCross y mvvmcross.plugins.validation.forfieldbinding, que proporciona soporte de validación para los enlaces de campo [7].
5. Uso en ViewModels: en ViewModels, puede definir campos utilizando clases como 'Inc` y atarlos directamente a los elementos de UI. Por ejemplo, puede crear campos como `public Readonly Inc ID = new Nc ();` y vincularlos a los componentes de UI utilizando la sintaxis de enlace MVVMCross [1].
6. Sintaxis de unión: el complemento admite varias sintaxis de unión, incluidas las uniones basadas en XML para enlaces de Android y fluidos para plataformas como iOS. Por ejemplo, puede vincular un `TextView` en Android usando XML como` local: mvxbind = 'text fRISTName'` [1] [4].
En general, el complemento MVVMCross.plugin.fieldbinding ofrece un enfoque más flexible para la unión de datos al permitir el uso de campos, que puede simplificar ciertos escenarios y mejorar la legibilidad de los códigos.
Citas:[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-neping
[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