暴露于MVVMCROSS结合的公共属性对于视图和视图模型之间的有效数据结合至关重要。以下是一些最佳实践:
##理解约束概念
在MVVMCross中,绑定涉及将视图模型中的源属性连接到视图上的目标属性。来源通常是视图模型中的公共财产,而目标是要绑定到[1]的视图中的公共财产。
##公共属性
为了使财产在MVVMCross中具有约束力,必须是公开的。这既适用于视图模型和视图。如果您使用的是自定义视图或控件,请确保要绑定的属性是公共的[1] [2]。
##实施InotifyPropertychanged
在视图模型中,实现InotifyPropertychanged在属性发生变化时通知绑定引擎。 MVVMCROSS提供了``MvxViewModel''上的``setProperty''之类的辅助方法来简化此过程。这样可以确保视图模型中的变化在视图[4]中反映出来。
##自定义目标绑定
如果您需要在Twoway模式下绑定属性或处理自定义方案,则可能需要创建自定义目标界定。这涉及定义如何设置属性值以及如何聆听更改。您可以使用``mvxpropertyinfotargetbinding''或`mvxwitheventPropertyInfotArgetBinding`来简化过程[2]等基类。
##注册目标绑定
创建自定义目标键入后,您必须通过覆盖`filltargetFactories''将其注册在`setup.cs'文件中。这样可以确保MVVMCross知道如何处理您的自定义绑定[2]。
##流利的绑定
MVVMCROSS支持流利的绑定,这使您可以在代码中定义绑定。使用流利的绑定时,请确保目标是要绑定到的实际视图,或将所需的属性暴露为公共[1]。
##嵌套属性
MVVMCross支持与嵌套特性结合。例如,您可以绑定到子视图模型的属性。确保子视图模型实现“ InotifyPropertychanged”,并正确指定了绑定路径[5]。
##调试绑定
如果绑定不按预期工作,请使用“ mvxbindingtrace”来增加结合痕量水平。这可以通过提供有关绑定操作的详细输出来帮助识别问题[5]。
通过遵循这些最佳实践,您可以在MVVMCross中有效地揭露和约束公共财产,从而确保可靠且可维护的MVVM应用程序。
引用:[1] https://blog.ostebaronen.dk/2018/01/mvvmcross-binding-target.html
[2] https://www.mvvmcross.com/documentation/advanced/custom-data-binding
[3] https://stackoverflow.com/questions/79082019/what-is-the-best-practice-to-bind-and-manipulate-properties-on-a-a-user-control-control
[4] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[5] https://stackoverflow.com/questions/20986140/binding-sub-properties-mvvmcross
[6] https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phote-phote-build-mvvm-mvvm-apps-with-xamarin-and-mvvmcross
[7] https://stackoverflow.com/questions/10700445/in-mvvmcross-how-do-i-i-do-custom-bind-properties
[8] https://www.mvvmcross.com/documentation/advanced/customizing-using-app-anp-setup