V MVVMCross nie sú požadované a väzbové výrazy priamo uplatniteľné, pretože sú v jadre ASP.NET. Pochopenie ich úloh v jadre ASP.NET však môže pomôcť objasniť, ako by sa podobné koncepty mohli uplatňovať v MVVMCross.
ASP.Net Core Context
- Vyžaduje sa: Tento atribút zaisťuje, že vlastnosť nie je nulová alebo prázdna po viazaní modelu. Používa sa predovšetkým na účely validácie, čím sa zabezpečuje, že povinné polia sú vyplnené vo formulároch alebo scenároch zadávania údajov [1] [3] [6].
- BindRequiredAttribute: Tento atribút zaisťuje, že vlastnosť je prítomná v prichádzajúcich údajoch počas väzby modelu. Na rozdiel od požadovaných kontroluje prítomnosť vlastníctva v údajoch o žiadosti, nielen jej neplatnosť [1] [3] [4].
mvvmcross kontext
V MVVMCross sa dôraz kladie na väzbu údajov medzi pohľadom a viewModel. Rámec nepoužíva priamo požadované ani viazané atribúty. Namiesto toho sa spolieha na režimy väzby, ako sú Oneway alebo Twoway na správu synchronizácie údajov medzi pohľadom a ViewModel [2] [7].
- Režimy väzby v MVVMCross:
- Oneway: Dáta tečie z pohľadu na pohľad.
- Twoway: Dáta tečie oboma smermi medzi pohľadom a ViewModel. Toto je predvolený režim pre vlastné väzby v MVVMCross [7].
Na dosiahnutie podobnej funkcie ako požadované alebo viazané v MVVMCross by ste zvyčajne implementovali logiku validácie v rámci svojho programu ViewModel alebo by ste použili vlastné väzby, aby ste sa uistili, že určité vlastnosti sa aktualizujú správne. Napríklad môžete použiť InotifyPropertyChanged na oznámenie pohľadu na zmeny v programe ViewModel, čím sa zabezpečí, že údaje sú vždy aktuálne [2] [8].
Implementácia validácie v MVVMCross
Zatiaľ čo MVVMCross nepodporuje priamo požadované alebo viazané, môžete implementovať overenie kontrolou nulových alebo prázdnych hodnôt vo vlastnostiach vášho programu ViewModel. To sa dá urobiť ručne alebo pomocou validačných rámcov, ktoré sa integrujú s MVVMCross.
Zhrnutie
Stručne povedané, aj keď sa vyžaduje a viazané sú špecifické pre jadro ASP.NET na zabezpečenie prítomnosti a validácie údajov, MVVMCross sa spolieha na svoje väzobné mechanizmy a vlastnú logiku validácie na správu integrity údajov. Ak potrebujete zabezpečiť, aby boli určité údaje prítomné alebo platné v MVVMCross, zvyčajne by ste implementovali túto logiku v rámci svojho pohľadu alebo prostredníctvom vlastných väzieb.
Citácie:[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-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/methodbinding
[6] https://towardsdev.com/mastering-the-use-of-requiredattribute-a-detailed-comparison-of-required-vs-bindrequired-b3feafeaf1f5f5
[7] https://stackoverflow.com/questions/41768962/mvvmcross-default-binding-mode-used-used-in-aproject
[8] https://www.mvvmcross.com/documentation/advanced/custom-data-binding