Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Jakie są różnice między stosowaniem wymaganego a wiązaniem w MVVMCROSS


Jakie są różnice między stosowaniem wymaganego a wiązaniem w MVVMCROSS


W MVVMCROSS wymagane warunki i powiązane nie mają bezpośrednio zastosowania, ponieważ są w rdzeniu ASP.NET. Jednak zrozumienie ich roli w rdzeniu ASP.NET może pomóc wyjaśnić, w jaki sposób podobne pojęcia można zastosować w MVVMCROSS.

ASP.NET Context

- Wymagane atrybut: Ten atrybut zapewnia, że ​​właściwość nie jest zerowa lub pusta po wystąpieniu wiązania modelu. Służy przede wszystkim do celów walidacji, zapewniając, że obowiązkowe pola są wypełniane formularzami lub scenariuszami wprowadzania danych [1] [3] [6].

- BindRequiredAttribute: Ten atrybut zapewnia, że ​​właściwość jest obecna w danych przychodzących podczas wiązania modelu. W przeciwieństwie do wymaganego, sprawdza obecność właściwości w danych żądania, a nie tylko jej zerowalność [1] [3] [4].

Mvvmcross Context

W MVVMCROSS nacisk kładziony jest na wiązanie danych między widokiem a viewModel. Framework nie wykorzystuje bezpośrednio wymaganych lub wiązanych atrybutów. Zamiast tego opiera się na trybach wiązania, takich jak Oneway lub Twoway do zarządzania synchronizacją danych między widokiem a ViewModel [2] [7].

- Tryby wiązania w MVVMCROSS:
- One Way: Dane przepływają z ViewModel do widoku.
- Twoway: Dane przepływają w obie strony między widokiem a ViewModel. Jest to tryb domyślny dla niestandardowych powiązań w MVVMCROSS [7].

Aby osiągnąć podobną funkcjonalność do wymaganej lub powiązanej z MVVMCROSS, zazwyczaj zaimplementujesz logikę sprawdzania poprawności w ViewModel lub użyć niestandardowych powiązań, aby upewnić się, że niektóre właściwości są poprawnie aktualizowane. Na przykład możesz użyć inotifyPropertyChanged, aby powiadomić widok zmian w ViewModel, zapewniając, że dane są zawsze aktualne [2] [8].

Wdrażanie sprawdzania poprawności w Mvvmcross

Chociaż MVVMCROSS nie obsługuje bezpośrednio wymaganego ani niezbędnego, możesz zaimplementować sprawdzanie poprawności, sprawdzając wartości zerowe lub puste w właściwościach viewModel. Można to zrobić ręcznie lub za pomocą ram sprawdzania poprawności, które integrują się z MVVMCROSS.

Streszczenie

Podsumowując, choć wymagane i powiązane są specyficzne dla ASP.NET Core w celu zapewnienia obecności danych i walidacji, MVVMCROSS opiera się na swoich mechanizmach wiązania i niestandardowej logice sprawdzania poprawności w celu zarządzania integralnością danych. Jeśli potrzebujesz upewnienia się, że niektóre dane są obecne lub poprawne w MVVMCROSS, zazwyczaj zaimplementujesz tę logikę w ViewModel lub poprzez niestandardowe powiązania.

Cytaty:
[1] https://blog.dominikasikorka.pl/required-vs-bindrequired/
[2] https://blog.ostebaronen.dk/2018/01/mvvmcross-binding-target.html
[3] https://dotnettuorials.net/lesson/bindnever-and--bindrequired-attribute-in-asp-no-core-mvc/
[4] https://www.strathweb.com/2017/12/required-and-bindrequired-in-asp-no-core-mvc/
[5] https://www.mvvmcross.com/documentation/plugins/methodbinding
[6] https://towardsdev.com/mastering-the-use-of-requiredtribute-a-detailed-comparison-of-required-vs-bindrequired-b3feaf108Ef5
[7] https://stackoverflow.com/questions/41768962/mvvmcross-default-binding-mode-used-in-a-project
[8] https://www.mvvmcross.com/documentation/advanced/custom-data-binding