Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Care sunt diferențele dintre utilizarea necesară și bindrequired în mvvmcross


Care sunt diferențele dintre utilizarea necesară și bindrequired în mvvmcross


În MVVMcross, termenii necesari și bindrequired nu sunt aplicabili direct, deoarece sunt în ASP.NET Core. Cu toate acestea, înțelegerea rolurilor lor în ASP.NET Core poate ajuta la clarificarea modului în care ar putea fi aplicate concepte similare în MVVMcross.

ASP.NET Context de bază

- ObligatoriuAtTribut: Acest atribut asigură că o proprietate nu este nulă sau goală după ce s -a produs legarea modelului. Este utilizat în principal în scopuri de validare, asigurându -se că câmpurile obligatorii sunt completate în formulare sau scenarii de introducere a datelor [1] [3] [6].

- BindRequiredAttribute: Acest atribut asigură că o proprietate este prezentă în datele primite în timpul legării modelului. Spre deosebire de cerință, verifică prezența proprietății în datele cererii, nu doar nulabilitatea ei [1] [3] [4].

MVVMCross Context

În MVVMcross, accentul este pus pe legarea datelor între vizualizare și vizualizare. Cadrul nu utilizează direct atributele necesare sau bindrequired. În schimb, se bazează pe moduri de legare, cum ar fi Oneway sau Twoway, pentru a gestiona sincronizarea datelor între vizualizare și vizualizare [2] [7].

- Moduri de legare în mvvmcross:
- Oneway: datele curg de la ViewModel la View.
- Twoway: datele curg în ambele moduri între vizualizare și vizualizare. Acesta este modul implicit pentru legăturile personalizate în MVVMcross [7].

Pentru a obține o funcționalitate similară la necesară sau bindrequired în MVVMcross, de obicei, implementați logica de validare în vizualul dvs. sau puteți utiliza legături personalizate pentru a vă asigura că anumite proprietăți sunt actualizate corect. De exemplu, s-ar putea să utilizați inotifyPropertychanged pentru a notifica vizualizarea modificărilor din ViewModel, asigurându-vă că datele sunt întotdeauna actualizate [2] [8].

Implementarea validării în MVVMCross

În timp ce MVVMCross nu acceptă direct necesar sau BindRequired, puteți implementa validarea verificând valori nule sau goale din proprietățile ViewModel. Acest lucru se poate face manual sau folosind cadre de validare care se integrează cu MVVMcross.

Rezumat

În rezumat, în timp ce este necesar și BindRequired sunt specifice ASP.NET Core pentru asigurarea prezenței și validării datelor, MVVMCross se bazează pe mecanismele sale de legare și logica de validare personalizată pentru a gestiona integritatea datelor. Dacă trebuie să vă asigurați că anumite date sunt prezente sau valabile în MVVMCross, de obicei, ați implementa această logică în vizualul dvs. sau prin legături personalizate.

Citări:
[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--detailed-compaton-of-aquired-s-bindrequired-b3feaf108ef5
[7] https://stackoverflow.com/questions/41768962/mvvmcross-default-binding-mode-used-in-a-a-project
[8] https://www.mvvmcross.com/documentation/advanced/custom-data-binding