Xamarin Forms和MVVM - 背后的代码是View-Model?

时间:2017-05-29 04:59:40

标签: xamarin mvvm xamarin.forms

我承认MVVM(Model,View,ViewModel)的模式具有'模型' (数据),视图(接口)和视图模型(数据和接口之间的逻辑)。

使用Xamarin表单时,有Page.XamlPage.Xaml.cs

如果我的整个界面都是用xaml编码的,文件后面的代码中没有写入GUI ..

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

我目前的结构如下..

  • 页面(GUI)
  • 页面代码后面(存储对我们正在使用的对象的引用,如果有的话。还有基于模型中的值等更新字段的逻辑。)
  • 模型本身(字段和操作模型的任何方法)

2 个答案:

答案 0 :(得分:3)

没有。

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

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

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

业务逻辑属于ViewModel和Model。背后的代码找到'它的DataMtext中的ViewModel应该只通过绑定传播值并在ViewModel上执行命令。应该没有业务逻辑,因为它无法测试。

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

答案 1 :(得分:0)

MVVM是Model View ViewModel。 MVVM是一种软件架构模式,有助于解耦视图,数据和业务逻辑。任何体系结构模式都有助于为代码提供更好的可维护性和可测试性。 现在你的问题"这是否意味着Page.xaml.cs到Xamarin Forms页面是ViewModel"不是。它不是ViewModel 要获取更多信息,请使用此(https://developer.xamarin.com/guides/xamarin-forms/xaml/xaml-basics/data_bindings_to_mvvm/)。