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


Hoe verschilt eenmalige binding van eenrichtingsbinding in MVVMCross


In MVVMCross zijn eenmalige binding en eenrichtingsbinding twee verschillende gegevensbindingsmodi die verschillende doeleinden dienen.

eenmalige binding

Eenmalige bindende overdracht van gegevens van het ViewModel naar de weergave slechts eenmaal, wanneer de bindende bron in eerste instantie wordt ingesteld. Na deze initiële overdracht houdt de binding geen controle in het ViewModel en werkt de weergave niet bij, tenzij de bindende bron zelf is 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 het gebruikelijk is voor gebruikers om een ​​taal eenmaal te selecteren en deze daarna niet vaak te wijzigen [1].

eenrichtingsbinding

Eenrichtingsbinding daarentegen werkt de weergave continu bij wanneer de overeenkomstige eigenschap in het ViewModel verandert. Dit betekent dat alle wijzigingen in de eigenschap van het ViewModel automatisch worden weerspiegeld in de weergave. Wijzigingen die rechtstreeks in de weergave zijn aangebracht, hebben echter geen invloed op het ViewModel. Eenrichtingsbinding is nuttig bij het weergeven van gegevens die afkomstig zijn van een dynamische bron, zoals sensorgegevens of netwerkfeeds, waarbij de weergave de nieuwste status van het ViewModel moet weerspiegelen, maar er geen updates naar terug hoeft te sturen [1].

Belangrijkste verschillen

-Update frequentie: eenmalige bindende bijwerkt de weergave slechts eenmaal bij de installatie, terwijl eenrichtingsbinding de weergave continu bijwerkt wanneer het weergavemodel verandert.
-Wijziging Monitoring: eenmalige binding houdt niet toezicht op veranderingen in het ViewModel na de initiële instelling, terwijl eenrichtingsbinding actief luistert voor wijzigingen in het ViewModel.
-Gebruiksgevallen: eenmalig is ideaal voor statische of zelden veranderende gegevens, terwijl eenweg beter geschikt is voor dynamische gegevens die in realtime moeten worden weergegeven zonder dat gebruikersinteractie het viewModel beïnvloedt.

Samenvattend, terwijl beide modi gegevens van het ViewModel naar de weergave overbrengen, doet eenmalige binding dit slechts eenmaal en bewaakt deze niet op wijzigingen, terwijl eenwegs binding de weergave continu bijwerkt op basis van weergaveModel-wijzigingen.

Citaten:
[1] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[2] https://blog.ostebaronen.dk/2018/01/mvvmcross-binding-target.html
[3] https://stackoverflow.com/questions/41768962/mvvmcross-default-moding-us-us-in-a-project
[4] https://www.mvvmcross.com/documentation/fundamentals/viewmodel-lifecycle
[5] https://learn.microsoft.com/en-us/dotnet/maui/fundamentals/data-binding/binding-mode?view=net-maui-9.0
[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://www.mvvmcross.com/documentation/advanced/custom-data-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://www.reddit.com/r/javaScript/Comments/V993R4/askjs_why_oneway_binding_better_than_twoway/