Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kuinka MVVMCross käsittelee kielitiedostopäivityksiä kertaluonteisella sidoksella


Kuinka MVVMCross käsittelee kielitiedostopäivityksiä kertaluonteisella sidoksella


MVVMCross käsittelee kielitiedostopäivityksiä käyttämällä kertaluonteisia sidoksia tietyllä tavalla, etenkin kun käsitetään staattista tekstiä kielitiedostoista. Tässä on yksityiskohtainen selitys siitä, miten tämä toimii:

Yleiskatsaus kertaluonteisesta sidoksesta MVVMCrossissa

Kertaluonteinen sitoutuminen MVVMCrossissa on sitoutumistila, joka siirtää arvot näkymämallista näkymään. Tämä siirto tapahtuu vain silloin, kun sidontalähde on asetettu, eikä se seuraa aktiivisesti muutosviestejä tai tapahtumia ViewModelista. Kun alkuperäinen siirto on valmis, sitominen ei suorita päivityksiä, ellei itse sidontalähde nollata [1].

Kielitiedostopäivitysten käsittely

Kun käytetään kertaluonteinen sidonta kielitiedostoihin, MVVMCross asettaa tekstin tyypillisesti kerran, kun kieli on valittu. Tämä johtuu siitä, että on tavallista, että käyttäjät valitsevat kielen sovelluksen alussa, ja on harvinaista, että he muuttavat sitä usein. Jos kieli on kuitenkin päivitettävä dynaamisesti, pelkästään kertaluonteinen sidonta ei riitä, koska se ei päivitä tekstiä automaattisesti, kun kieli muuttuu.

Dynaaminen kielen päivitykset

Dynaamisten kielipäivitysten käsittelemiseksi sinun on yleensä toteutettava lisälogiikka. Tähän voi sisältyä sitoutumislähteen nollaaminen, kun kieli muuttuu tai käyttämällä erilaista sitoutumismuotoa, joka tukee päivityksiä, kuten kaksisuuntaista sitomista, vaikka tämä on vähemmän yleistä staattisen tekstin kannalta.

käyttämällä mvvmcross.plugin.resxlocaliszation

Kielitiedostojen hallinnassa MVVMCross tarjoaa `mvvmcross.plugin.resxlocaliszation` -laajennuksen, jonka avulla voit tallentaa jouset` .resx` -tiedostoihin eri kielille. Tämä laajennus auttaa hallitsemaan paikallisia jousia ja voidaan integroida sovelluksen IOC -säilöön, jotta saataisiin pääsy paikallisiin resursseihin ViewModelsista ja näkymistä [4].

Päivittääksesi kielen dynaamisesti tällä laajennuksella, sinun on toteutettava logiikka, joka päivittää käyttöliittymän, kun kieli muuttuu. Tähän voi liittyä käyttöliittymäelementtien tekstiominaisuuksien manuaalista päivittäminen tai dynaamisemman sitoutumismenetelmän käyttäminen, joka reagoi kielimuutoksiin.

Päätelmä

Vaikka kertaluonteinen sidonta soveltuu staattisen tekstin asettamiseen alun perin kielitiedostoista, dynaamisten kielipäivitysten käsittely vaatii lisävaiheet. MVVMCross tarjoaa työkaluja, kuten `resxlocalisaatio` -laajennus paikallisten resurssien hallitsemiseksi, mutta sinun on toteutettava logiikka käyttöliittymän päivittämiseksi, kun kieli muuttuu.

Yhteenvetona voidaan todeta, että MVVMCrossin kertaluonteinen sidonta ei ole suunniteltu käsittelemään automaattisesti kielipäivityksiä, mutta oikealla lisälogiikalla ja laajennuksilla voit saavuttaa dynaamisen kielen tuen sovelluksessasi.

Viittaukset:
[1] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[2] https://www.mvvmcross.com/documentation/fundamentals/value-converters
[3] https://www.mvvmcross.com/mvvmcross-5-release/
[4] https://mobileProgrammerblog.wordpress.com/2017/12/30/mvvm-cross-with-xamarin-platform-resx-localization/
[5] https://stackoverflow.com/questions/17156368/
.
[7] https://www.mvvmcross.com/documentation/plugins/jsonlocalisation
[8] https://www.mvvmcross.com/documentation/fundamentals/linking
[9] https://www.mvvmcross.com/blog/