Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Hoe verschilt eenmalige binding van tweewegbinding in MVVMCross


Hoe verschilt eenmalige binding van tweewegbinding in MVVMCross


In MVVMCross dienen eenmalige binding en tweewegbinding verschillende doeleinden bij het beheren van de interactie tussen het beeld en het ViewModel.

eenmalige binding

Eenmalige binding wordt gebruikt om gegevens van het ViewModel slechts eenmaal naar de weergave over te dragen, wanneer de bindende bron is ingesteld. Na deze initiële overdracht houdt de binding geen controle op wijzigingen in de eigenschappen van het ViewModel en werkt de weergave niet bij, tenzij de bindende bron zelf wordt gereset. Deze modus is handig voor velden die configureerbaar zijn, maar niet vaak wijzigen nadat ze zijn ingesteld. In MVVMCross wordt bijvoorbeeld eenmalige binding gebruikt voor het instellen van statische tekst uit taalbestanden, omdat de gebruiker meestal eenmaal een taal selecteert en deze daarna zelden verandert [1] [10].

Two-way binding

Two-way binding daarentegen legt een continue, bidirectionele verbinding tussen de weergave en het ViewModel tot stand. Wijzigingen in de weergave of de weergave van de weergave Model in de andere. Deze modus is met name handig bij het bewerken van bestaande gegevens, zoals het invullen van formulieren, waarbij zowel de invoer van de gebruiker als de wijzigingen van het ViewModel in realtime moeten worden weerspiegeld. Two-way binding wordt vaak gebruikt in MVVMCross en dient vaak als de standaardmodus voor nieuwe bindingen [1] [2].

Belangrijkste verschillen

-Richting van de gegevensstroom: eenmalige binding werkt de weergave slechts één keer bij het ViewModel bij, terwijl bindende bindende zowel de weergave als het ViewModel continu bijwerkt.
-Wijzigmonitoring: eenmalige binding houdt niet toezicht op wijzigingen na de eerste update, terwijl tweewegbinding continu continu bewaakt en beide uiteinden bijwerken.
-Gebruiksgevallen: eenmalig is ideaal voor statische of zelden veranderende gegevens, terwijl tweeweg beter geschikt is voor interactieve vormen of dynamische gegevensuitwisseling.

Samenvattend wordt eenmalige binding gebruikt voor statische of initiële gegevensinstellingen, terwijl tweewegbinding wordt gebruikt voor interactieve scenario's waarbij zowel de weergave als viewModel elkaars veranderingen in realtime moeten weerspiegelen.

Citaten:
[1] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[2] https://blog.ostebaronen.dk/2018/01/mvvmcross-binding-target.html
[3] https://www.mvvmcross.com/documentation/advanced/custom-data-binding
[4] https://softwareEngineering.stackexchange.com/questions/322450/how-does-two-way-data-binding-differ-from-simple-auto-sync
[5] https://stackoverflow.com/questions/17156368/
[6] https://yanxiaodi.gitbook.io/xamarin-mvvmcross-handbook/using-mvvmcross-to-create-your-first-xamarin-app/creating-the-android-project/understanding-the-data-binding-syntax
[7] https://stackoverflow.com/questions/13504906/what-is-two-way-binding
[8] https://github.com/mvvmcross/mvvmcross/issues/29
[9] https://stackoverflow.com/questions/27803448/data-binding-one-vs-two-way
[10] https://stackoverflow.com/questions/48910503/binding-mode-onetime-in-mvxrecyclerview
[11] https://learn.microsoft.com/en-us/dotnet/maui/fundamentals/data-binding/binding-mode?view=net-maui-9.0
[12] https://www.reddit.com/r/javaScript/Comments/v993r4/askjs_why_oneway_binding_better_than_twoway/