In MVVMCross ist die einmalige Datenbindung ein Modus, in dem Daten nur einmal auf die Ansicht übertragen werden, wenn die Bindung hergestellt wird. Nach dieser ersten Übertragung überwacht die Bindung keine Änderungen und führt keine Aktualisierungen durch, es sei denn, die Bindungsquelle selbst wird zurückgesetzt. Hier sind einige häufige Anwendungsfälle für die einmalige Datenbindung:
1. Statischer Text aus Sprachdateien: Einmalbindung ist besonders nützlich, wenn statische Text aus Sprachdateien festgelegt werden. Sobald die Sprache ausgewählt ist, ist es ungewöhnlich, dass der Benutzer sie ändern kann, sodass kontinuierliche Aktualisierungen nicht erforderlich sind. Dieser Ansatz hilft bei der Aufrechterhaltung eines sauberen und effizienten Bindungsaufsatzes, da unnötige Überprüfungen für Änderungen vermieden werden, die wahrscheinlich nicht auftreten [2].
2. Konfigurierbare, aber selten ändernde Daten: Für Felder, die konfigurierbar sind, aber nicht häufig ändern, nachdem sie anfänglich festgelegt wurden, kann die einmalige Bindung von Vorteil sein. Dies umfasst Einstellungen oder Daten, die während der Initialisierung festgelegt werden und während der Laufzeit der Anwendung konstant bleiben.
3.. Leistungsoptimierung: Obwohl es im Allgemeinen keine Leistungsstrafe für die Verwendung von Einwegbindungen gibt, können einmalige Bindungen die Leistung weiter optimieren, indem potenzielle Overheads, die mit der Änderungserkennung verbunden sind, eliminieren. Dies kann besonders in Szenarien relevant sein, in denen die Daten als statisch bekannt sind und keine Aktualisierungen erfordern.
4. Reduzierung unnötiger Aktualisierungen: In Fällen, in denen Daten größtenteils statisch sind und nur einmal angezeigt werden müssen, verhindert die einmalige Bindung unnötige Aktualisierungen. Dies kann dazu beitragen, den Rechenaufwand zu verringern, der mit häufigen Überprüfungen für Änderungen verbunden ist, insbesondere in komplexen oder datenintensiven Anwendungen.
5. Vereinfachung der bedingten Logik: Durch die Verwendung einer einmaligen Bindung für statische Daten können Entwickler die bedingte Logik im Zusammenhang mit Bildschirmlayout oder Datenpräsentation vereinfachen. Dies hilft bei der Aufrechterhaltung einer saubereren Codebasis, indem die dynamische Datenbehandlung von der statischen Datenanzeige getrennt wird.
Zusammenfassend ist die einmalige Datenbindung in mvvmcross ideal für Szenarien, in denen Daten statisch sind oder selten ändert, was eine effiziente und unkomplizierte Datenpräsentation ohne den Overhead der kontinuierlichen Änderungsüberwachung ermöglicht.
Zitate:[1] https://blog.ostebaronen.dk/2018/01/mvvmcross-binding-target.html
[2] https://www.mvmcross.com/documentation/fundamentals/data-binding
[3] https://www.reddit.com/r/androiddev/comments/ux9379/what_are_the_use_cases_of_data_binding_and_when/
[4] https://www.mvvmcross.com/documentation/advanced/custom-data-binding
[5] https://stackoverflow.com/questions/48910503/binding-mode-onetime-in-mvxrecyclerview
[6] http://stackoverflow.com/questions/10700445/in-mvmcross-how-do-i-do-custom.-bind-properties
[7] https://stackoverflow.com/questions/25460030/When-ose-use-mvmcross-data-bindings
[8] https://github.com/mvvmcross/mvmcross/issues/421
[9] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvm-apps-apps-pith-xamarin-and-mvmcross