Az MVVMCross -ban a szükséges és a kötődés kifejezések nem alkalmazhatók közvetlenül, mivel azok az ASP.NET Core -ban vannak. Az ASP.NET Core -ban betöltött szerepük megértése azonban tisztázhatja, hogyan lehet hasonló fogalmakat alkalmazni az MVVMCross -ban.
ASP.NET Core Context
- Szükséges etribute: Ez az attribútum biztosítja, hogy egy tulajdonság ne legyen nulla vagy üres, miután a modellkötés megtörtént. Elsősorban érvényesítési célokra használják, biztosítva, hogy a kötelező mezők űrlapokban vagy adatbeviteli forgatókönyvekben vannak kitöltve [1] [3] [6].
- BindRequiredAttribute: Ez az attribútum biztosítja, hogy a modellkötés során egy tulajdonság jelen legyen a bejövő adatokban. A kötelezővel ellentétben ellenőrzi a tulajdonság jelenlétét a kérési adatokban, nem csak annak nullailitását [1] [3] [4].
mvvmcross kontextus
Az MVVMCross -ban a hangsúly a nézet és a ViewModel közötti adatkötésre összpontosít. A keret nem használja közvetlenül a szükséges vagy a kötött attribútumokat. Ehelyett olyan kötési módokra támaszkodik, mint például az ONEWAY vagy a TWOWAY az adatok szinkronizálásának kezelésére a nézet és a ViewModel között [2] [7].
- Kötési módok az MVVMCross -ban:
- Egyirányú: Az adatok a ViewModelből a nézetbe áramlik.
- Twoway: Az adatok mindkét irányba áramlik a nézet és a ViewModel között. Ez az alapértelmezett mód az MVVMCross egyedi kötésekhez [7].
Annak érdekében, hogy az MVVMCross -ban hasonló funkcionalitást érjen el, vagy kötődjön be, általában a ViewModel -en belüli érvényesítési logikát valósít meg, vagy egyéni kötéseket használna annak biztosítása érdekében, hogy bizonyos tulajdonságok megfelelően frissüljenek. Például használhatja az inotifyPropertyChanged-et a ViewModel változásainak értesítésére, biztosítva, hogy az adatok mindig naprakészek legyenek [2] [8].
Az érvényesítés végrehajtása az MVVMCross -ban
Noha az MVVMCross nem támogatja közvetlenül a szükséges vagy kötődött, akkor a validálást úgy hajthatja végre, hogy ellenőrizze, hogy a ViewModel tulajdonságain belül null vagy üres értékeket. Ezt manuálisan vagy validációs keretek használatával lehet megtenni, amelyek integrálódnak az MVVMCross -hoz.
Összegzés
Összefoglalva: bár az adat jelenlétének és validálásának biztosítása érdekében az ASP.NET Core -ra vonatkozik, az MVVMCross az adatok integritásának kezelése érdekében az MVVMCross kötő mechanizmusaira és az egyéni érvényesítési logikára támaszkodik. Ha meg kell győződnie arról, hogy bizonyos adatok jelen vannak vagy érvényesek az MVVMCross -ban, akkor ezt a logikát általában a ViewModel -en vagy az egyedi kötéseken keresztül hajtja végre.
Idézetek:[1] https://blog.dominikasikorska.pl/required-vs-bindrequired/
[2] https://blog.ostebaronen.dk/2018/01/mvvmcross-binding-target.html
[3] https://dotnettutorials.net/lesson/bindnever-and-bindRequired-attribute-pat-cent-core-mvc/
[4] https://www.stathweb.com/2017/12/required-and-bindrequired-in-asp-net-core-mvc/
[5] https://www.mvvmcross.com/documentation/plugins/methodbinding
[6] https://towardsdev.com/mastering-the-use-of-requiredAttribute-a-detailed-comparison-of-required-vs-drequired-B3Feaf108EF5
[7] https://stackoverflow.com/questions/41768962/mvvmcross-default-kind-mode-used-----project
[8] https://www.mvvmcross.com/documentation/advanced/custom-data-binding