Xamarin Forms 和 MVVM - 代码背后是视图模型?

Bej*_*asc 1 mvvm xamarin xamarin.forms

我承认 MVVM(模型、视图、ViewModel)的模式具有“模型”(数据片段)、视图(接口)和视图模型(数据和接口之间的逻辑)。

对于 Xamarin 表单,有Page.Xaml, 和Page.Xaml.cs

如果我的整个界面都是用 xaml 编码的,并且代码隐藏文件中没有编写任何 GUI。

这是否意味着Page.xaml.csxamarin 表单页面是 ViewModel

我目前的结构如下..

  • 页面(图形用户界面)
  • 页面代码隐藏(存储对我们正在使用的对象的引用,如果有的话。还具有根据模型等中的值更新字段的逻辑)
  • 模型本身(字段和任何操作模型的方法)

Ern*_*rno 5

不。

确定这一点的相对简单的方法是:代码可以在单元测试中进行测试吗?

Page.xaml.cs 中的代码需要实例化页面才能进行测试。由此产生的复杂性和依赖性使得不可能将其称为单元(隔离)测试。

MVVM 的目标之一是提高代码的可测试性。后面的代码很难测试。

业务逻辑属于ViewModel 和Model。背后的代码在其 DataContext 中“查找”其 ViewModel,并且应该仅通过绑定传播值并在 ViewModel 上执行命令。不应该有业务逻辑,因为它无法测试。

代码隐藏应该只关心显示逻辑和用户交互(拖放、单击、排序等),在大多数情况下,此逻辑已经在现有控件中可用,并且可以通过 XAML 进行配置。