Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon ¿Cuáles son las diferencias entre el uso de BindRquired requerido en MVVMCross?


¿Cuáles son las diferencias entre el uso de BindRquired requerido en MVVMCross?


En MVVMCross, los términos requeridos y BindRequired no son directamente aplicables, ya que están en el núcleo ASP.NET. Sin embargo, comprender sus roles en ASP.NET Core puede ayudar a aclarar cómo se pueden aplicar conceptos similares en MVVMCross.

contexto central ASP.NET

- Requerido Attribute: este atributo asegura que una propiedad no sea nula o vacía después de que se haya ocurrido la unión del modelo. Se utiliza principalmente para fines de validación, asegurando que los campos obligatorios se llenen en formularios o escenarios de entrada de datos [1] [3] [6].

- BindRquiredAttribute: este atributo asegura que una propiedad esté presente en los datos entrantes durante la unión del modelo. A diferencia del requerido, verifica la presencia de la propiedad en los datos de solicitud, no solo su nulabilidad [1] [3] [4].

contexto mvvmcross

En MVVMCross, la atención se centra en la unión de datos entre la vista y el modelado View. El marco no utiliza los atributos requeridos o BindRquired directamente. En cambio, se basa en modos de enlace como Oneway o Twoway para administrar la sincronización de datos entre la vista y el modelado de vista [2] [7].

- Modos de unión en MVVMCross:
- Oneway: los datos fluyen desde ViewModel a la vista.
- Twoway: los datos fluyen en ambos sentidos entre la vista y la vista de visión. Este es el modo predeterminado para enlaces personalizados en MVVMCross [7].

Para lograr una funcionalidad similar a la requerida o BindRquired en MVVMCross, generalmente implementaría la lógica de validación dentro de su Modelo ViewModel o utilizaría enlaces personalizados para garantizar que ciertas propiedades se actualicen correctamente. Por ejemplo, puede usar inotifypropertychanged para notificar la vista de los cambios en el model de vista, asegurando que los datos siempre estén actualizados [2] [8].

Implementación de validación en MVVMCross

Si bien MVVMCross no admite directamente requerido o BindRquired, puede implementar la validación verificando los valores nulos o vacíos dentro de las propiedades de su Model View. Esto se puede hacer manualmente o utilizando marcos de validación que se integran con MVVMCross.

Resumen

En resumen, si bien es necesario y bindRquired son específicos de ASP.NET Core para garantizar la presencia y validación de datos, MVVMCross se basa en sus mecanismos de enlace y la lógica de validación personalizada para administrar la integridad de los datos. Si necesita asegurarse de que ciertos datos estén presentes o válidos en MVVMCross, normalmente implementaría esta lógica dentro de su Modelo ViewModel o mediante enlaces personalizados.

Citas:
[1] https://blog.dominikasikorska.pl/required-vs-bindrequired/
[2] https://blog.ostebaronen.dk/2018/01/mvvmcross-kinding-target.html
[3] https://dotnettutorials.net/lesson/bindnever-and-bindrequired-attribute-in-asp-net-core-mvc/
[4] https://www.strathweb.com/2017/12/required-and-bindrequired-in-asp-net-core-mvc/
[5] https://www.mvvmcross.com/documentation/plugins/methodbinding
[6] https://towardsdev.com/mastering-the-use-of-requiredattribute-a-detailed-comparison-of-required-vs-bindrequired-b3feaF108ef5
[7] https://stackoverflow.com/questions/41768962/mvvmcross-default---mode-mode-in-a-project
[8] https://www.mvvmcross.com/documentation/advanced/custom-data-neping