2010-12-13 130 views
0

我有两种形式(窗口)的应用程序 他们代表的正面和身份证 用户输入数据和打印机吐出来的东西,可以折叠和层压给予正面背面效果背面 我使用不同的视图来显示正面和背面,我想我的问题是我如何在两个中使用相同的ViewModel实例(数据需要在打印前保存到数据库) 或者我做这一切都错了,我应该只是有一个视图和显示隐藏Front \ Back(我真的很讨厌这个) 谢谢MVVM设计问题

回答

0

一般来说,你打算每个视图需要一个ViewModel,因为ViewModel的工作是要pr完全符合它所连接的View所需的数据。

因此,就你而言,听起来你应该有一个View和ViewModel用于前端,一个View和ViewModel用于后端。

当用户提交表单时,您可以通过多种方式保存数据。常见的模式是为每个数据库表建立Repository类。存储库类通常允许您选择,插入,更新和删除数据。因此,您可以将必要的存储库传递给每个ViewModel,然后当用户提交时,让ViewModel告诉存储库插入或更新数据。

+0

在数据库架构中,尽管前面和后面都放在同一行中,所以您可以这么说,因此您建议基于id我合并存储库中的前后值。 – Rahul 2010-12-13 08:15:07

+0

@Rahul,我建议创建一个“实体类”来保存你的表的所有数据。这个类应该有一个属性对应于每一列。当您创建新的正面和背面ViewModels时,只需传入实体类的新实例即可。由于您的两个ViewModel共享实体类的一个实例,因此用户填充数据时,此实例将保存表单两边的所有数据。然后,在提交时,您可以将实体类传递到存储库并执行Insert()。 – devuxer 2010-12-13 17:39:58

+0

我喜欢共享实体的建议丹谢谢 – Rahul 2011-02-07 21:53:47