Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Onko MVVMCrossin kertaluonteisen sitoutumisen käytöstä rajoituksia


Onko MVVMCrossin kertaluonteisen sitoutumisen käytöstä rajoituksia


Kertaluonteinen sitoutuminen MVVMCrossissa on hyödyllinen sitoutumistila, joka siirtää arvot näkymämallista näkymään vain kerran, kun sitoutumislähde asetetaan. Se ei seuraa aktiivisesti näkymämallin muutoksia, mikä tarkoittaa, että se ei päivitä näkymää, jos ViewModel -ominaisuudet muuttuvat alkuperäisen sitoutumisen jälkeen. Tässä on joitain rajoituksia ja näkökohtia kertaluonteisen sitoutumisen käytölle:

1. Ei jatkuvia päivityksiä: kertaluonteisen sitoutumisen ensisijainen rajoitus on, että se ei päivittää näkymää jatkuvasti näkymämallin muutosten perusteella. Tämä tekee siitä vähemmän sopivan dynaamiseen tietoon, joka on heijastettava reaaliajassa käyttöliittymässä.

2. Esimerkiksi sitä käytetään usein staattisen tekstin asettamiseen kielitiedostoista, koska kielen valinta tehdään tyypillisesti kerran eikä sitä muuteta usein [1].

3. Recyclerview ja vastaavat säätimet: Kontrolleissa, kuten `mvxRecyclerview`, kertaluonteiset sidokset eivät välttämättä käyttäytyy odotetusti näkymän kierrätyksen vuoksi. Kun käyttäjä vierittää luettelon läpi, näkymät kierrätetään ja käytetään uudelleen, mikä voi aiheuttaa kertaluonteiset sidokset uudelleen tulipaloon, käyttäytyvät tehokkaasti kuin jatkuvat sidokset [4]. Tämä voi johtaa odottamattomaan käyttäytymiseen, jos sitä ei hallita kunnolla.

4. Suorituskykyä koskevat näkökohdat: Vaikka kertaluonteiset sidokset eivät seuraa muutoksia, ne eivät luonnostaan ​​esittele suorituskykyongelmia. Kuitenkin, jos sitä käytetään laajasti monimutkaisissa asetteluissa tai monissa sidoksissa, alkuasetus saattaa vaikuttaa hitaampaan käyttöliittymän renderointiaikoihin verrattuna muihin sitoutumismoodiin [9].

5. Langan turvallisuus: MVVMCross-sidokset, mukaan lukien kertaluonteiset sidokset, voivat vaikuttaa kierteiset ongelmat, jos niitä ei hallita asianmukaisesti. Esimerkiksi, jos sidokset suoritetaan työntekijän säikeellä, se voi johtaa odottamattomaan käyttäytymiseen, ellei se ole synkronoitu oikein käyttöliittymän säikeen kanssa [5] [3].

Yhteenvetona voidaan todeta, että vaikka kertaluonteinen sidonta on hyödyllistä staattiselle tiedoille, se ei ole ihanteellinen dynaamiseen tietoon tai skenaarioihin, joissa jatkuvat päivitykset ovat tarpeen. Lisäksi sen käyttäytyminen tietyissä käyttöliittymäkomponenteissa, kuten `Recyclerview`, vaatii huolellista käsittelyä odottamattomien uusimisen välttämiseksi.

Viittaukset:
[1] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[2] https://stackoverflow.com/questions/25460030/when-to-use-mvvmcross-data-bindings
[3] https://github.com/mvvmcross/mvvmcross/issues/1545
.
[5] https://www.mvvmcross.com/mvvmcross-4.2/
[6] https://github.com/mvvmcross/mvvmcross/issues/29
[7] https://stackoverflow.com/questions/17156368/
.
[9] https://github.com/mvvmcross/mvvmcross/issues/1342
[10] https://www.mvvmcross.com/mvvmcross-5-release/