Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon MVVMCross中使用和绑定之间有什么区别


MVVMCross中使用和绑定之间有什么区别


在MVVMCROSS中,所需的条款和BindRequred不适用于ASP.NET核心中。但是,了解它们在ASP.NET核心中的角色可以帮助阐明如何在MVVMCross中应用类似的概念。

ASP.NET核心上下文

- 必需的attribute:此属性可确保发生模型绑定后,属性不会为空或空。它主要用于验证目的,以确保在表格或数据输入方案中填充强制性字段[1] [3] [6]。

- bindRequiredAttribute:此属性可确保模型结合过程中传入数据中存在属性。与所需的不同,它检查了请求数据中属性的存在,而不仅仅是其无效性[1] [3] [4]。

mvvmcross上下文

在MVVMCross中,重点是视图和ViewModel之间的数据绑定。该框架不直接使用所需或绑定的属性。取而代之的是,它依赖于绑定模式,例如Oneway或Twoway来管理视图和ViewModel [2] [7]之间的数据同步。

- MVVMCROSS中的绑定模式:
- 单程:数据从ViewModel流到视图。
- Twoway:数据在视图和ViewModel之间的两种方式流动。这是MVVMCross中自定义绑定的默认模式[7]。

为了实现与MVVMCross中所需或绑定的类似功能,您通常会在ViewModel中实现验证逻辑,或使用自定义绑定来确保正确更新某些属性。例如,您可以使用InotifyPropertychanged通知ViewModel中更改的视图,以确保数据始终是最新的[2] [8]。

###在MVVMCross中实施验证

虽然MVVMCross并未直接支持所需或Bindrequred,但您可以通过检查ViewModel属性中的空值或空值来实现验证。这可以手动或使用与MVVMCross集成的验证框架来完成。

### 概括

总而言之,虽然必需和BINDEREQURED是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://dotnettutorials.net/lesson/bindnever-and-bindrequired-attribute-intribute-in-asp-net-core-mvc/
[4] https://www.strathweb.com/2017/12/required-and-and-bindrequired-in-in-asp-net-core-mvc/
[5] https://www.mvvmcross.com/documentation/plugins/methodbinding
[6] https://towardsdev.com/mastering-the--use-of-requiredattribute-a-detailed-comparparison of-quired-vs-vs-bindrequired-bindrequired-b3feaf108ef5
[7] https://stackoverflow.com/questions/41768962/mvvmcross-default-binding-mode-used-sused-in-a-project
[8] https://www.mvvmcross.com/documentation/advanced/custom-data-binding