Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Каковы различия между использованием необходимых и связываемых в mvvmcross


Каковы различия между использованием необходимых и связываемых в mvvmcross


В MVVMcross требуемые термины и привязанность не применимы напрямую, поскольку они находятся в ядре ASP.NET. Тем не менее, понимание их ролей в ядре ASP.NET может помочь прояснить, как похожие понятия могут быть применены в MVVMcross.

ASP.net Core Context

- Обязательный Attribute: Этот атрибут гарантирует, что свойство не является нулевым или пустым после того, как привязан модели. Он используется в первую очередь для целей валидации, гарантируя, что обязательные поля заполнены формами или сценариями ввода данных [1] [3] [6].

- BindRequireDattribute: Этот атрибут гарантирует, что свойство присутствует во входящих данных во время привязки модели. В отличие от необходимого, он проверяет наличие свойства в данных запроса, а не только его нуль [1] [3] [4].

mvvmcross context

В MVVMcross основное внимание уделяется привязке данных между представлением и ViewModel. Структура не использует требуемые или напрямую связующуюся атрибуты. Вместо этого он полагается на режимы привязки, такие как Oneway или Twoway, для управления синхронизацией данных между представлением и ViewModel [2] [7].

- режимы связывания в mvvmcross:
- Oneway: данные вытекают из ViewModel в представление.
- TwoWay: данные протекают в обе стороны между представлением и 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
[3] https://dotnettututorials.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-requiredattribute-a detailed-comparison-frequired-vs-bindrequired-b3feaf108ef5
[7] https://stackoverflow.com/questions/41768962/mvvmcross-default-dring-mode-used-in-a-project
[8] https://www.mvvmcross.com/documentation/advanced/custom-data-binding