我承认MVVM(Model,View,ViewModel)的模式具有'model'(数据片段),view(接口)和viewmodel(数据和接口之间的逻辑) .
使用Xamarin表单时,有 Page.Xaml
和 Page.Xaml.cs
.
如果我的整个界面都是用xaml编码的,并且代码隐藏文件中没有写入GUI .
Does this mean that the Page.xaml.cs to a xamarin forms page is the ViewModel?
我目前的结构如下..
-
页面(GUI)
-
页面代码后面(存储对我们正在使用的对象的引用,如果有的话 . 还具有基于模型中的值更新字段的逻辑等)
-
模型本身(字段和操作模型的任何方法)
2 回答
MVVM是Model View ViewModel . MVVM是一种软件架构模式,有助于解耦视图,数据和业务逻辑 . 任何体系结构模式都有助于为代码提供更好的可维护性和可测试性 . 现在您的问题"Does this mean that the Page.xaml.cs to a Xamarin Forms page are the ViewModel"不是 . 它不是ViewModel .
要获得更多信息,请使用此功能(https://developer.xamarin.com/guides/xamarin-forms/xaml/xaml-basics/data_bindings_to_mvvm/) .
没有 .
确定这一点的相对简单的方法是:可以在单元测试中测试代码吗?
Page.xaml.cs中的代码需要实例化页面才能进行测试 . 由此产生的复杂性和依赖性使得无法将其称为单元(隔离)测试 .
MVVM的目标之一是提高代码的可测试性 . 代码背后很难测试 .
业务逻辑属于ViewModel和Model . 后面的代码在其DataContext中“查找”其ViewModel,并且只应通过绑定传播值并在ViewModel上执行命令 . 应该没有业务逻辑,因为它无法测试 .
代码隐藏应仅关注显示逻辑和用户交互(拖放,单击,排序等),在大多数情况下,此逻辑已在现有控件中可用,并且可能通过XAML进行配置 .