根据a separate thread中的回复,我担心自己错过了MVVM的基本原理,因为我学习了这些东西。我得到了关于视图绑定到视图模型,通知等的更简单的东西。底层技术方面对我有意义。不太清楚的是视图模型和模型之间存在边界。
我正在尝试构建一个通用的所有(我现在关注的是Windows Phone部分)。我将使用SQLite来持久化和检索数据。而这个简单的方面是我不清楚的地方。
我曾假设我写的课程将形成"模型"这些类将负责从SQLite中检索数据。 viewmodel将绑定到模型类上的属性,视图将绑定到视图中的属性。作为所有这些的一部分,我的假设是与SQLite的所有交互都在我的模型中。
现在,基于单独帖子中的评论,我担心我有错。声明是viewmodel将负责" loading"该模型。它 - 而不是模型 - 可能会与SQLite直接交互。
嗯,在我的理解中扔了一把扳手,现在我想知道我是否一直错过树林里的木头:)在我的简单应用中,什么是模型层? SQLite本身可以被视为模型,viewmodel可以直接与SQLite交互。如果是这样,我可能写的模型类的作用是什么 - 如果我的需求很简单(CRUD到SQLite),那么我需要在模型层上的类?
虽然我知道没有人"对"设计这样一个应用程序的方式,我想确保我遵循基本的,公认的原则。考虑到这一点,在一个简单的" MVVM / SQLite应用程序,后面的模型究竟是什么?
由于
答案 0 :(得分:0)
通常,模型是包含进入客户端的数据的类集。它可以是实体框架模型或经典DataSet或RecordSet。它甚至可以是包含JSON(或其他格式)的字符串。
一般来说,我接受模型由数据源决定。我按原样使用它,当它由于数据源的更改(规范化,协议更改,新版本)而发生变化时,我调整了从ViewModel中的Model到ViewModel的转换。
因此,数据源中的更改只会影响ViewModel中的模型和转换逻辑。 ViewModel的界面和View应该尽可能稳定,因为这些应该由用户要求驱动。当然,除非模型中的更改是在视图中提供新功能,否则ViewModel和View需要更改以显示新数据。