Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kuidas MVVMcrossi värskendusi ühekordse köitmise kasutamisel


Kuidas MVVMcrossi värskendusi ühekordse köitmise kasutamisel


MVVMCROSS tegeleb värskendustega ühekordse sidumise kasutamisel, edastades andmed ViewModelist vaatele ainult üks kord, kui sidumisallikas on algselt seatud. Pärast seda esialgset ülekandmist ei jälgi köitmine Aktiivselt ViewModeli muutuste sõnumeid ega sündmusi. Seetõttu ei kajastata vaatemodeli omaduse järgnevaid muudatusi vaates, välja arvatud juhul, kui siduv allikas ise lähtestatakse ega taaselustatakse.

MVVMCROSS-i ühekordse sidumise võtmepunktid:

1. Esialgne andmeedastus: sidumine edastab andmeid ViewModelist vaatesse, kui sidumine esmakordselt kehtestatakse. See on tavaliselt kasulik väljade jaoks, mis on konfigureeritavad, kuid ei muutu sageli pärast nende seadistamist.

2. Pidev jälgimine puudub: Erinevalt kahesuunalisest või ühesuunalisest köitest ei jälgi ühekordsed köitmised muudatuste vaatemodelli pidevalt. See tähendab, et kui ViewModeli atribuut muutub pärast esialgset sidumist, ei värskendata seda vaadet automaatselt.

3. Kasutage juhtumeid: ühekordset sidumist kasutatakse tavaliselt stsenaariumides, kus andmed on staatilised või muutuvad harva, näiteks staatilise teksti seadistamine keelefailidest. Kui keel on valitud, pole harvad juhud, kui kasutaja seda sageli muudab, muutes selliste juhtumite jaoks ühekordse köitmise [1].

4. Sidumisallika lähtestamine: kui sidumisallikas lähtestatakse või taaselustatakse, edastab ühekordne sidumine uued andmed ViewModelist uuesti vaatesse. See nõuab aga siduva allika lähtestamiseks selget meetmeid.

5. Dünaamiliste vaadete piirangud: dünaamiliste vaadete korral, näiteks MVXRecyclerView ”, ei pruugi ühekordsed köited käituda ootuspäraselt, kui vaaded on ringlussevõetud. Sellistel juhtudel võib seondumist uuesti hinnata, kuna vaateid kasutatakse uuesti, mis võib põhjustada ootamatut käitumist [6].

Kokkuvõtlikult võib öelda, et MVVMcrossi ühekordne köide on loodud stsenaariumide jaoks, kus andmed on üks kord seadistatud ja neid ei pea dünaamiliselt värskendama. See lihtsustab siduvat infrastruktuuri, vältides muudatuste pidevat jälgimist, kuid vaade värskendamiseks on vaja käsitsi sekkumist, kui ViewModeli andmed muutuvad pärast esialgset sidumist.

Tsitaadid:
[1] https://www.mvvmcross.com/documentation/fundamentals/data-binding
]
]
]
[5] https://blog.ostebaronen.dk/2018/01/mvvmcross-binding-target.html
]
[7] https://github.com/mvvmcross/mvvmcross/issues/87
]
]
]
]