我承认MVVM(Model,View,ViewModel)的模式具有'模型' (数据),视图(接口)和视图模型(数据和接口之间的逻辑)。
使用Xamarin表单时,有Page.Xaml
和Page.Xaml.cs
。
如果我的整个界面都是用xaml编码的,文件后面的代码中没有写入GUI ..
这是否意味着xamarin表单页面的Page.xaml.cs
是ViewModel ?
我目前的结构如下..
答案 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/)。