MVVMCROSS nepieciešamie termini un bindrike nav tieši piemērojami, jo tie ir ASP.NET kodolā. Tomēr izpratne par viņu lomu ASP.NET kodolā var palīdzēt noskaidrot, kā līdzīgus jēdzienus varētu izmantot MVVMCross.
asp.net pamatkonteksts
- Nepieciešamsatribāts: Šis atribūts nodrošina, ka pēc modeļa iesiešanas īpašums nav nulle vai tukšs. To galvenokārt izmanto validācijas nolūkos, nodrošinot, ka obligātie lauki tiek aizpildīti formās vai datu ievadīšanas scenārijos [1] [3] [6].
- BindRequiredAttribute: Šis atribūts nodrošina, ka modeļa iesiešanas laikā ienākošajos datos ir īpašums. Atšķirībā no nepieciešamības, tas pārbauda īpašuma klātbūtni pieprasījuma datos, ne tikai tā nenobriešanai [1] [3] [4].
mvvmcross konteksts
MVVMCROSS uzmanības centrā ir datu saistīšana starp skatu un skatuModeli. Framē netiek izmantoti nepieciešamie vai pamatīgie atribūti tieši. Tā vietā tas ir atkarīgs no saistīšanas režīmiem, piemēram, Oneway vai Twoway, lai pārvaldītu datu sinhronizāciju starp skatu un skatuModeli [2] [7].
- saistīšanās režīmi MVVMCROSS:
- Oneway: dati plūst no ViewModel uz skatu.
- Twoway: dati plūst abos virzienos starp skatu un skatuModeli. Šis ir noklusējuma režīms pielāgotajiem iesiešanas režīmam MVVMCROSS [7].
Lai sasniegtu līdzīgu funkcionalitāti kā nepieciešamajai vai pamatnostādnei MVVMCROSS, jūs parasti ieviestu validācijas loģiku savā ViewModel vai izmantotu pielāgotus iesiešanas gadījumus, lai pārliecinātos, ka noteiktas īpašības tiek pareizi atjauninātas. Piemēram, jūs varētu izmantot InotifyPropertyChanged, lai paziņotu skatu par ViewModel izmaiņām, nodrošinot, ka dati vienmēr ir atjaunināti [2] [8].
Validācijas ieviešana mvvmcross
Kaut arī MVVMCROSS tieši neatbalsta nepieciešamās vai pamatotas, jūs varat ieviest validāciju, pārbaudot, vai nav viewmodel īpašumos nulles vai tukšas vērtības. To var izdarīt manuāli vai izmantojot validācijas ietvarus, kas integrējas ar MVVMCross.
kopsavilkums
Rezumējot, kamēr tas ir nepieciešams un pamatots, ir specifiski ASP.NET kodolam, lai nodrošinātu datu klātbūtni un validāciju, MVVMCROSS balstās uz tā saistošajiem mehānismiem un pielāgotu validācijas loģiku, lai pārvaldītu datu integritāti. Ja jums ir jāpārliecinās, ka MVVMCross ir klāt vai derīgi, jūs parasti šo loģiku ieviesīsit savā skataModel vai izmantojot pielāgotus iesiešanas gadījumus.
Atsauces:[1] https://blog.dominikasikorska.pl/required-vs-bindrequired/
[2] https://blog.ostebaronen.dk/2018/01/mvvmcross-tonging-target.html
[3] https://dotnettutorials.net/lesson/bindnever-and-bindrequired-attribute-in-asp-net-core-mvc/
[4] https://www.strathweb.com/2017/12/required-and-bindrequired-in-asp-net-core-mvc/
[5] https://www.mvvmcross.com/documentation/plugins/metodbinding
[6] https://towardsdev.com/mastering-the-use-of-requiredAttribute-adetailed-comparison-of-required-vs-bindrequired-b3feaf108ef5
[7] https://stackoverflow.com/questions/41768962/MVVMCROSS-Default
[8] https://www.mvvmcross.com/documentation/advanced/custom-data saistoši