In MVVMCross worden zowel Zwitserse als vloeiende databinding gebruikt voor het aansluiten van weergaven om modellen te bekijken, maar ze dienen enigszins verschillende doeleinden en hebben de voorkeur in verschillende scenario's.
Zwitserse databinding
Zwitserse databinding biedt een schonere en minder uitgebreide syntaxis in vergelijking met zijn voorganger, JSON Databinding. Het is met name handig wanneer u bindingen op een eenvoudige manier moet definiëren, vaak direct in XML -lay -outbestanden. Zwitserse bindingen zijn gemakkelijk te lezen en te schrijven, waardoor ze geschikt zijn voor eenvoudige, directe bindingen waarbij de syntaxis beknopt en begrijpelijk moet zijn.
Een specifiek scenario waarbij Zwitserse databinding mogelijk de voorkeur kan hebben, is wanneer u snel bindingen in XML -bestanden moet instellen, vooral in platforms waar XML -lay -outs vaak worden gebruikt en gemakkelijk bewerkbaar worden, zoals Android. Zwitserse databinding houdt echter niet actief wijzigingen van het weergavemodel in de gaten, tenzij de bindende bron wordt gereset, wat een beperking kan zijn in scenario's die realtime updates vereisen.
vloeiende databinding
Vloeiende databinding biedt daarentegen een op C#gebaseerde syntaxis voor het construeren van bindingen. Deze benadering is vooral gunstig in omgevingen waar XML-lay-outs niet gemakkelijk menselijk geleidelijk zijn, zoals iOS en macOS. Vloeiende bindingen zorgen voor meer complexe en dynamische bindingsinstellingen, waardoor ze ideaal zijn voor scenario's waarbij u bindingen programmatisch moet manipuleren of meer ingewikkelde logica moet verwerken.
Vloeiende databinding heeft de voorkeur wanneer u programmatisch bindingen moet maken, wat flexibeler en krachtiger kan zijn, vooral in complexe toepassingen of bij het werken met platforms die XML -lay -outs niet zo effectief ondersteunen.
voorkeursscenario's
- Zwitserse databinding heeft de voorkeur wanneer:
-U hebt een eenvoudige, eenvoudig te lezen syntaxis nodig voor bindingen, vooral in XML-bestanden.
- De toepassing vereist geen continue monitoring van wijzigingen van het weergavemodel.
- U werkt in omgevingen waar XML -lay -outs gemakkelijk bewerkbaar zijn.
- Vloeiende databinding heeft de voorkeur wanneer:
- U moet programmatisch bindingen maken, waardoor meer dynamische en complexe instellingen mogelijk zijn.
- U werkt op platforms waar XML -lay -outs niet gemakkelijk bewerkbaar zijn, zoals iOS.
- De toepassing vereist meer controle over de bindende logica of moet complexe scenario's verwerken.
Samenvattend, hoewel zowel Zwitserse als vloeiende databinding hun sterke punten hebben, hangt de keuze tussen hen af van de specifieke vereisten van uw toepassing, inclusief de behoefte aan eenvoud versus complexiteit, en het platform waarvoor u ontwikkelt.
Citaten:[1] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[2] https://crosscuttingconcerns.com/mvvmcross-fluent-databinding
[3] https://stackoverflow.com/questions/41462365/what-are-the-pros-and-cons-of-android-data-binding
[4] https://stackoverflow.com/questions/60500840/should-view-binding-replace-data-binding
[5] https://learn.microsoft.com/en-us/dotnet/desktop/wpf/data/?view=netDesktop-9.0
[6] https://www.phunware.com/android-reean-coding-approach/
[7] https://www.reddit.com/r/androiddev/comments/ux9379/what_are_the_use_cases_of_data_binding_and_when/
[8] https://jesseliberty.com/2022/02/01/advanced-databinding-part-0-basics/