Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Ako MVVMCross manipuluje s aktualizáciami súborov jazykov pomocou jednorazovej väzby


Ako MVVMCross manipuluje s aktualizáciami súborov jazykov pomocou jednorazovej väzby


MVVMCross spracováva aktualizácie jazykových súborov pomocou jednorazového viazania špecifickým spôsobom, najmä pri riešení statického textu z jazykových súborov. Tu je podrobné vysvetlenie toho, ako to funguje:

Prehľad jednorazovej väzby v MVVMCross

Jednorazová väzba v MVVMCross je väzbový režim, ktorý prenáša hodnoty z programu ViewModel do pohľadu. Tento prenos sa vyskytuje iba vtedy, keď je nastavený zdroj viazania, a aktívne monitoruje zmenu správ alebo udalostí z programu ViewModel. Po dokončení počiatočného prenosu viazanie nevykonáva žiadne aktualizácie, pokiaľ sa samotný zdroj viazania resetuje [1].

Vykonávanie aktualizácií súborov jazykov

Pri použití jednorazovej väzby pre jazykové súbory MVVMCross zvyčajne nastaví text raz, keď je jazyk vybraný. Je to preto, že je bežné, že používatelia na začiatku aplikácie vyberajú jazyk a je neobvyklé, že ho často mení. Ak sa však jazyk musí dynamicky aktualizovať, samostatná jednorazová väzba nestačí, pretože pri zmene jazyka automaticky neaktualizuje text.

Dynamické aktualizácie jazyka

Na spracovanie aktualizácií dynamického jazyka by ste zvyčajne potrebovali implementovať ďalšiu logiku. To by mohlo zahŕňať resetovanie väzbového zdroja, keď sa jazyk mení alebo použije iný režim väzby, ktorý podporuje aktualizácie, ako je napríklad obojsmerná väzba, hoci to je menej bežné pre statický text.

Použitie mvvmcross.plugin.resxlocalizácie

Pre správu jazykových súborov poskytuje MVVMCross doplnok `mvvmcross.plugin.resxLocalization`, ktorý vám umožňuje ukladať reťazce v súboroch .Resx` pre rôzne jazyky. Tento doplnok pomáha spravovať lokalizované reťazce a môže byť integrovaný s kontajnerom IOC aplikácie, aby poskytoval prístup k lokalizovaným zdrojom z ViewModels and Views [4].

Ak chcete jazyk dynamicky aktualizovať pomocou tohto doplnku, musíte implementovať logiku, ktorá aktualizuje používateľské rozhranie, keď sa zmení jazyk. To by mohlo zahŕňať ručne aktualizáciu textových vlastností prvkov používateľského rozhrania alebo pomocou dynamickejšieho väzbového prístupu, ktorý reaguje na zmeny jazyka.

Záver

Aj keď je jednorazová väzba vhodná na nastavenie statického textu z jazykových súborov spočiatku, riešenie aktualizácií dynamického jazyka vyžaduje ďalšie kroky implementácie. MVVMCross poskytuje nástroje, ako je doplnok „Resxlocalization“ na správu lokalizovaných zdrojov, ale pri zmene jazyka musíte implementovať logiku, aby ste aktualizovali používateľské rozhranie.

Stručne povedané, jednorazová väzba spoločnosti MVVMCross nie je navrhnutá tak, aby automaticky spracovávala jazykové aktualizácie, ale so správnou ďalšou logikou a doplnkami môžete vo svojej aplikácii dosiahnuť dynamickú jazykovú podporu.

Citácie:
[1] https://www.mvvmcross.com/documentation/funmamentals/data-binding
[2] https://www.mvvmcross.com/documentation/funmamentals/value-converters
[3] https://www.mvvmcross.com/mvvmcross-5-release/
[4] https://mobileprogrammerblog.wordpress.com/2017/12/30/mvvm-cross-with-xamarin-platform-resx-resx-localization/
[5] https://stackoverflow.com/questions/17156368/
[6] https://stackoverflow.com/questions/60311571/the-entended-purpose-of-mvvvmcross-createBindingset
[7] https://www.mvvmcross.com/documentation/plugins/jsonlocalizácie
[8] https://www.mvvmcross.com/documentation/funmamentals/Linking
[9] https://www.mvvmcross.com/blog/