2014-07-21 30 views
1

我是新来的,似乎无法找到/谷歌一个简洁的答案。实体是否可以在视图中重复显示UI?

我正在制作一个WPF应用程序并试图遵循MVVM模式。我使用100多个表建模数据库。 EntityFramework实体是在我的机器上自动生成的。我正在使用WCF服务来访问本地模式(该数据库位于另一台计算机上)。 My ViewModal通过访问WCF服务加载/保存数据,EntityFramework与数据库通信。

在MVVM模式之后,我的Views使用ViewModel作为它们的数据上下文。

为了与MVVM模式保持一致,是否必须将模式中的表/实体复制到ViewModel才能绑定到UI? (这将是相当广泛的100 +表)。

特别是,我希望能够在将整个表格保存到数据库之前编辑同一个表格的多个记录上的一个或多个字段。我不希望在viewmodel中创建每个实体类的副本。

欢迎任何建议。

回答

1

答案在这里取决于个人的角度。许多人(包括我自己)都不允许ViewModel直接将Model数据公开给View,这意味着您可以直接绑定到View中的实体。为此,ViewModel可以拥有一个直接包含匹配模型实例的属性。

+0

我有点困惑...... DataContext是Model或ViewModel,如果它的ViewModel属性在ViewModel中看起来像在UI中绑定模型中的实体会是什么样子? –

+0

@AlanWayne它可以是 - 您可以使用虚拟机,并绑定到“Model.Foo”,或者直接使用模型。如果它是一个集合,从ItemsSource绑定到“Models”效果很好 –

+0

谢谢。看起来,如果我把自己生成的EntityFramework类中的业务逻辑放在部分类中,我可以绕过ViewModel一起?即查看模型? –

相关问题