V MVVMCross je jednorazová väzba na dáta režimom, v ktorom sa údaje prenášajú z ViewModel do pohľadu iba raz, keď je zaviazaná väzba. Po tomto počiatočnom prenose sa viazanie nesleduje zmeny a nevykonáva žiadne aktualizácie, pokiaľ sa neviazaný zdroj samotný nezastavuje. Tu je niekoľko bežných prípadov použitia pre jednorazovú väzbu údajov:
1. Statický text z jazykových súborov: Jednorazová väzba je obzvlášť užitočná pri nastavovaní statického textu z jazykových súborov. Po výbere jazyka je neobvyklé, že ho používateľ mení, takže nie je potrebné nepretržité aktualizácie. Tento prístup pomáha pri udržiavaní čistého a efektívneho nastavenia väzby, pretože sa vyhýba zbytočným kontrolám zmien, ktoré sa pravdepodobne vyskytnú [2].
2. Konfigurovateľné, ale zriedkavo meniace sa údaje: Pre polia, ktoré sú konfigurovateľné, ale nemajú tendenciu sa často meniť po ich pôvodnom nastavení, môže byť jednorazová väzba prospešná. Zahŕňa to nastavenia alebo údaje, ktoré sú nastavené počas inicializácie a zostanú konštantné počas behu aplikácie.
3. Optimalizácia výkonu: Aj keď vo všeobecnosti neexistuje žiadny trest výkonnosti na používanie jednosmerných väzieb, jednorazové väzby môžu ďalej optimalizovať výkon vylúčením akýchkoľvek potenciálnych režijných nákladov spojených s detekciou zmien. To môže byť obzvlášť relevantné v scenároch, v ktorých sú údaje známe, že sú statické a nevyžadujú aktualizácie.
4. Zníženie nepotrebných aktualizácií: V prípadoch, keď sú údaje väčšinou statické a je potrebné sa zobrazovať iba raz, pričom použitie jednorazovej väzby zabraňuje zbytočným aktualizáciám. To môže pomôcť pri znižovaní výpočtových režijných nákladov spojených s častými kontrolami zmien, najmä v zložitých alebo dátových aplikáciách.
5. Zjednodušenie podmienenej logiky: Použitím jednorazovej väzby pre statické údaje môžu vývojári zjednodušiť podmienenú logiku týkajúcu sa rozloženia obrazovky alebo prezentácie údajov. Pomáha to pri udržiavaní čistejšej kódovej základne oddelením dynamického spracovania údajov od displeja statických údajov.
Stručne povedané, jednorazová väzba údajov v MVVMCross je ideálna pre scenáre, v ktorých sa údaje statické alebo zriedka mení, čo umožňuje účinnú a priamu prezentáciu údajov bez režijného monitorovania kontinuálneho zmeny.
Citácie:[1] https://blog.ostebaronen.dk/2018/01/mvvmcross-binding-target.html
[2] https://www.mvvmcross.com/documentation/funmamentals/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-netime-in-mvxrecycleview
[6] http://stackoverflow.com/questions/10700445/in-mvvmcross-how-do-i-a-custom.-bind-properties
[7] https://stackoverflow.com/questions/25460030/when-to-use-mvvmcross-data-bindings
[8] https://github.com/mvvmcross/mvvmcross/issues/421
Https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvvvm-apps-with-xamarin-mith-xamarin-mith-mith-with-xamarin-mith