Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Які відмінності між використанням, необхідними та прив’язаними в Mvvmcross


Які відмінності між використанням, необхідними та прив’язаними в Mvvmcross


У MVVMCross необхідні терміни та зв'язування не застосовуються безпосередньо, оскільки вони знаходяться в ядрі ASP.NET. Однак розуміння їх ролей у ядрі ASP.NET може допомогти уточнити, наскільки подібні поняття можуть застосовуватися в MVVMCross.

ASP.NET CORE CONTEXT

- NoctiveAtTribute: Цей атрибут гарантує, що властивість не є нульовою або порожньою після того, як відбулося прив'язування моделі. Він в першу чергу використовується для перевірки, забезпечуючи заповнення обов'язкових полів у формах або сценарії введення даних [1] [3] [6].

- BindRequiredAttribute: Цей атрибут гарантує, що властивість присутня в вхідних даних під час зв'язування моделі. На відміну від необхідності, він перевіряє наявність властивості в даних запиту, а не лише його нульова [1] [3] [4].

контекст Mvvmcross

У MVVMCross фокус зосереджено на зв'язуванні даних між View та ViewModel. Рамка не використовує необхідні або прив’язані атрибути безпосередньо. Натомість він спирається на режими зв'язування, такі як Oneway або Twoway, щоб керувати синхронізацією даних між View та ViewModel [2] [7].

- режими зв'язування в mvvmcross:
- Oneway: дані протікають від ViewModel до перегляду.
- Twoway: дані протікають обидва шляхи між View та ViewModel. Це режим за замовчуванням для спеціальних прив’язок у MVVMCross [7].

Для досягнення аналогічної функціональності до необхідності або прив’язки в MVVMCross, ви, як правило, реалізуєте логіку перевірки в рамках вашого ViewModel або використовуєте спеціальні прив’язки, щоб переконатися, що певні властивості оновлюються правильно. Наприклад, ви можете використовувати InotifyPropertyChanged, щоб повідомити погляд на зміни в ViewModel, гарантуючи, що дані завжди оновлюються [2] [8].

Впровадження перевірки в mvvmcross

Хоча MVVMCross не підтримує безпосередньо необхідні або зв'язується, ви можете реалізувати перевірку, перевіряючи наявність нульових або порожніх значень у властивостях вашого ViewModel. Це можна зробити вручну або використовуючи валідаційні рамки, які інтегруються з MVVMCross.

Резюме

Підсумовуючи це, хоча необхідні та зв'язуються є специфічними для ядра ASP.NET для забезпечення наявності та перевірки даних, MVVMCross покладається на його механізми зв'язування та власну логіку перевірки для управління цілісністю даних. Якщо вам потрібно переконатися, що певні дані присутні або дійсні в mvvmcross, ви, як правило, реалізуєте цю логіку в рамках вашої ViewModel або через спеціальні прив’язки.

Цитати:
[1] https://blog.dominikasikorska.pl/required-vs-bindrequired/
[2] https://blog.ostebaronen.dk/2018/01/mvvmcross-binding-target.html
.
[4] https://www.strathweb.com/2017/12/required-and-bindrequired-in-asp-net-core-mvc/
[5] https://www.mvvmcross.com/documentation/plugins/methodbinding
.
[7] https://stackoverflow.com/questions/41768962/mvvmcross-default-binding-mode-suse-in-a-project
[8] https://www.mvvmcross.com/documentation/advanced/custom-data-binding