Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Wat zijn de verschillen tussen het gebruik van vereiste en bind -equired in mvvmcross


Wat zijn de verschillen tussen het gebruik van vereiste en bind -equired in mvvmcross


In MVVMCROSS zijn de vereiste en bindvereisten niet direct van toepassing omdat ze zich in ASP.NET -kern bevinden. Het begrijpen van hun rollen in ASP.NET Core kan echter helpen verduidelijken hoe vergelijkbare concepten kunnen worden toegepast in MVVMCross.

asp.net kerncontext

- Vereistattribute: dit kenmerk zorgt ervoor dat een eigenschap niet nul of leeg is nadat modelbinding is opgetreden. Het wordt voornamelijk gebruikt voor validatiedoeleinden, zodat verplichte velden worden ingevuld in vormen of gegevensinvoerscenario's [1] [3] [6].

- BindRequiredAttribute: Dit kenmerk zorgt ervoor dat een eigenschap aanwezig is in de inkomende gegevens tijdens modelbinding. In tegenstelling tot vereist, controleert het op de aanwezigheid van de eigenschap in de aanvraaggegevens, niet alleen de niet -handelbaarheid [1] [3] [4].

mvvmcross context

In MVVMCross ligt de focus op gegevensbinding tussen de weergave en viewModel. Het framework maakt geen gebruik van vereiste of bindvereend attributen rechtstreeks gebruikt. In plaats daarvan is het afhankelijk van bindingsmodi zoals OneWay of Twoway om gegevenssynchronisatie tussen de weergave en viewModel [2] [7] te beheren.

- Bindende modi in MVVMCross:
- ONEWAY: Gegevensstromen van het ViewModel naar de weergave.
- TWOWAY: Gegevens stroomt beide kanten op tussen de weergave en viewModel. Dit is de standaardmodus voor aangepaste bindingen in MVVMCross [7].

Om een ​​vergelijkbare functionaliteit te bereiken als vereist of bindend in MVVMCross, implementeert u meestal validatielogica in uw ViewModel of gebruik je aangepaste bindingen om ervoor te zorgen dat bepaalde eigenschappen correct worden bijgewerkt. U kunt bijvoorbeeld InotifyPropertyChanged gebruiken om de weergave van wijzigingen in het ViewModel op de hoogte te stellen, zodat gegevens altijd up-to-date zijn [2] [8].

Validatie implementeren in MVVMCross

Hoewel MVVMCROSS niet direct wordt ondersteund of bindend of bind -equired, kunt u validatie implementeren door te controleren op nul- of lege waarden binnen de eigenschappen van uw ViewModel. Dit kan handmatig worden gedaan of door validatiekaders te gebruiken die integreren met MVVMCross.

Samenvatting

Samenvattend, hoewel vereist en bind -equired zijn specifiek voor ASP.NET -kern voor het waarborgen van de aanwezigheid en validatie van gegevens, MVVMCross vertrouwt op de bindingsmechanismen en aangepaste validatielogica om gegevensintegriteit te beheren. Als u ervoor moet zorgen dat bepaalde gegevens aanwezig of geldig zijn in MVVMCross, implementeert u deze logica meestal in uw ViewModel of via aangepaste bindingen.

Citaten:
[1] https://blog.dominikasikorska.pl/required-vs-bindrequired/
[2] https://blog.ostebaronen.dk/2018/01/mvvmcross-binding-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-core-mvc/
[5] https://www.mvvmcross.com/documentation/plugins/methodbinding
[6] https://towarddev.com/Mastering-The-Use-of-requiredAtTribute-a-detailed-combinison--of-Required-VS-BindReed-B3FeAf108EF5
[7] https://stackoverflow.com/questions/41768962/mvvmcross-default-moding-us-us-in-a-Project
[8] https://www.mvvmcross.com/documentation/advanced/custom-data-binding