我正在尝试使用MVVM设计模式创建一个silverlight应用程序。这是一种银行申请。
我在MVVM上看了很多教程,但有些东西让我很困惑。
我有关于fiwe usercontrols表示我的视图“TransactionsView”,“AccountView”等以及一堆模型“UserProfile” - 包含用户密码,用户名和UserAccounts列表,“UserAccounts” - 包含名称,余额和列表AccountTransactions,“AccountTransactions” - 包含名称和ammount。
我应该创建一个包含我的userprofile的模型视图,还是应该为每个视图创建一个viewmodel?到目前为止我做得对吗?或者我有错误吗?
由于
答案 0 :(得分:2)
在MVVM中,ViewModel通常与视图一对一。但是,ViewModel和Models之间没有奇偶校验。
一个视图总是需要一个ViewModel,因此一对一(它可能有子模型,但我会把它留给你来决定/处理。我从1开始到... 1)。
ViewModel通常需要模型来实际“工作”,但是您尝试解决的每个应用/问题有多少个类/实例。
答案 1 :(得分:0)
根据你的解释,你正朝着正确的方向前进。您创建的视图模型对您有点了解,MVVM并不是一成不变的 - 它只是一种方法。我通过试验和ERROR发现的是,在深入挖掘自己之前理解它是明智的。
我阅读了很多文章,这些文章没有以我能理解的方式解释MVVM。最后,我发现Jeremiah Morrill的几篇文章直截了当且容易理解:Article 1和article 2。
答案 2 :(得分:0)
建议MVVM使用每个视图一个ViewModel。
答案 3 :(得分:0)
没有真正的硬性规则,但基本上每个视图通常有一个ViewModel。您可能会遇到想要在多个视图中共享视图模型的情况,但这种情况很少见。
答案 4 :(得分:0)
想象一下您希望在屏幕上看到的内容以及屏幕上的屏幕/控件可能处于的每个状态,该特定屏幕(视图)上所需的所有内容都应在ViewModel中具有相应的属性,您可以将其绑定到查看到。因此,这会转换为特定View的单个ViewModel。 ViewModel本身可以绑定到后面的一个或多个模型中。至少我就是这样理解的。