Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Wie unterscheidet sich die einmalige Bindung von einer Zwei-Wege-Bindung in mvvmcross


Wie unterscheidet sich die einmalige Bindung von einer Zwei-Wege-Bindung in mvvmcross


In MVVMCross dienen die einmalige Bindung und die Zwei-Wege-Bindung unterschiedliche Zwecke bei der Verwaltung der Wechselwirkung zwischen der Ansicht und dem ViewModel.

einmalige Bindung

Eine einmalige Bindung wird verwendet, um Daten aus dem ViewModel nur einmal an die Ansicht zu übertragen, wenn die Bindungsquelle festgelegt ist. Nach dieser ersten Übertragung überwacht die Bindung keine Änderungen der Eigenschaften des ViewModel und aktualisiert die Ansicht nicht, es sei denn, die Bindungsquelle selbst wird zurückgesetzt. Dieser Modus ist nützlich für Felder, die konfigurierbar sind, sich jedoch nach der Einstellung nicht häufig ändern. Beispielsweise wird in MVVMCross eine einmalige Bindung zum Einstellen statischer Text aus Sprachdateien verwendet, da der Benutzer normalerweise einmal eine Sprache auswählt und sie selten anschließend ändert [1] [10].

Zwei-Wege-Bindung

Die Zwei-Wege-Bindung dagegen stellt eine kontinuierliche, bidirektionale Verbindung zwischen der Ansicht und dem ViewModel her. Änderungen entweder in der Ansicht oder im ViewModel -Trigger -Updates in der anderen. Dieser Modus ist besonders nützlich, wenn vorhandene Daten bearbeitet werden, z. B. das Ausfüllen von Formularen, bei denen sowohl die Eingabe des Benutzers als auch alle Änderungen aus dem ViewModel in Echtzeit reflektiert werden müssen. Die Zwei-Wege-Bindung wird üblicherweise in mvvmcross verwendet und dient häufig als Standardmodus für neue Bindungen [1] [2].

Schlüsselunterschiede

-DATENSREISTUNG: Einmalige Bindung aktualisiert nur einmal die Ansicht aus dem ViewModel, während die Zwei-Wege-Bindung sowohl die Ansicht als auch das ViewModel kontinuierlich aktualisiert.
-Änderung der Überwachung: Die einmalige Bindung überwacht die Änderungen nach dem ersten Update nicht, während die Zwei-Wege-Bindung kontinuierlich beide Enden überwacht und aktualisiert.
-Anwendungsfälle: Einmal ist ideal für statische oder selten ändernde Daten, während der Zwei-Wege besser für interaktive Formen oder dynamische Datenaustausch geeignet ist.

Zusammenfassend wird eine einmalige Bindung für statische oder anfängliche Datenaufbauten verwendet, während die Zwei-Wege-Bindung für interaktive Szenarien verwendet wird, in denen sowohl die Ansicht als auch das ViewModel die Änderungen der anderen in Echtzeit widerspiegeln müssen.

Zitate:
[1] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[2] https://blog.ostebaronen.dk/2018/01/mvmcross-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-diff-from-imple-auto-sync
[5] https://stackoverflow.com/questions/17156368/
[6] https://yanxiaodi.gitbook.io/xamarin-mvmcross-handbook/using-mvmcross-to-create-your-first-xamarin-app/creating-the--android-project/undarching-the-datainding-syntax
[7] https://stackoverflow.com/questions/13504906/what-is-two-way-binding
[8] https://github.com/mvvmcross/mvmcross/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_is_oneway_binding_better_than_twoway/