Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kuinka kertaluonteinen sitoutuminen eroaa kaksisuuntaisesta sitoutumisesta MVVMCrossissa


Kuinka kertaluonteinen sitoutuminen eroaa kaksisuuntaisesta sitoutumisesta MVVMCrossissa


MVVMCrossissa kertaluonteinen sitoutuminen ja kaksisuuntainen sitoutuminen palvelevat selkeitä tarkoituksia näkymän ja näkymämallin välisen vuorovaikutuksen hallinnassa.

kertaluonteinen sidonta

Kertaluonteista sitoutumista käytetään tietojen siirtämiseen näkymämallista näkymään vain kerran, kun sitoutumislähde asetetaan. Tämän alkuperäisen siirron jälkeen sitoutuminen ei seuraa muutoksia ViewModel -ominaisuuksiin eikä päivitä näkymää, ellei itse sidontalähde nollata. Tämä tila on hyödyllinen kentälle, jotka ovat konfiguroitavissa, mutta eivät muutu usein asettamisen jälkeen. Esimerkiksi MVVMCrossissa kertaluonteinen sidonta käytetään staattisen tekstin asettamiseen kielitiedostoista, koska käyttäjä valitsee tyypillisesti kielen kerran ja muuttaa sitä harvoin sen jälkeen [1] [10].

kaksisuuntainen sitominen

Kaksisuuntainen sitoutuminen puolestaan ​​muodostaa jatkuvan, kaksisuuntaisen yhteyden näkymän ja ViewModelin välillä. Muutokset joko näkymässä tai ViewModel Trigger -päivityksessä toisessa. Tämä tila on erityisen hyödyllinen, kun muokkaat olemassa olevia tietoja, kuten lomakkeiden täyttämistä, joissa sekä käyttäjän syöttö että kaikki näkymämallin muutokset on heijastettava reaaliajassa. Kaksisuuntaista sitoutumista käytetään yleisesti MVVMCrossissa ja se toimii usein uusien sidosten oletusmoodina [1] [2].

keskeiset erot

-Tiedonsiirron suunta: Kertaluonteinen sidonta päivittää näkymän vain näkymältä kerran, kun taas kaksisuuntainen sitoutuminen päivittää sekä näkymän että ViewModel-ohjelman jatkuvasti.
-Muuta seurantaa: Kertaluonteinen sitoutuminen ei seuraa muutoksia alkuperäisen päivityksen jälkeen, kun taas kaksisuuntainen sitoutuminen seuraa jatkuvasti ja päivittää molemmat päät.
-Käyttötapaukset: Kerta-aika on ihanteellinen staattiseen tai harvoin muuttumiseen, kun taas kaksisuuntainen sopii paremmin interaktiivisiin muotoihin tai dynaamisiin tiedonvaihtoon.

Yhteenvetona voidaan todeta, että kertaluonteista sitoutumista käytetään staattiseen tai alkuperäiseen tietoasetukseen, kun taas kaksisuuntaista sitoutumista käytetään interaktiivisiin skenaarioihin, joissa sekä näkymän että ViewMollin on heijastettava toistensa muutoksia reaaliajassa.

Viittaukset:
[1] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[2] https://blog.ostebaronen.dk/2018/01/mvmcross-binding-target.html
[3] https://www.mvvmcross.com/documentation/advanced/custom-data-binding
.
[5] https://stackoverflow.com/questions/17156368/
.
[7] https://stackoverflow.com/questions/13504906/what-is-two-way-binding
[8] https://github.com/mvvmcross/mvvmcross/issues/29
[9] https://stackoverflow.com/questions/27803448/data-binding-one-vs-two-way
.
.
.