【发布时间】:2011-05-08 00:43:03
【问题描述】:
我尝试过一些不同的 Model-View-ViewModel 实现,并且一直遇到我不确定正确方法的情况。我知道 MVVM 的目标之一是将视图与应用程序逻辑分离,以便可以在不存在视图的情况下测试逻辑。将逻辑放在不依赖于 View 的 ViewModel 中可以解决这个问题。伟大的。如果可以将 Model 与 ViewModel 以一种可以模拟的方式解耦,那就更好了。
所以我的问题是,ViewModel 是否应该将 Model 与 View 分离?换句话说,通过 ViewModel 将 EntityFramework 实体暴露给 View 是否“可以”?例如,假设视图中有一个组合框,用户可以在其中选择地址的州。在 AddressViewModel 中,State 应该作为真实的实体类型属性公开,还是应该作为 StateViewModel 公开?如果它应该是 StateviewModel 类型的属性,我不明白应该如何在 AddressViewModel.State 设置器中管理底层模型(因为在属性中设置的是 StateViewModel 而不是 State 实体)。
在我看来,这可能是任何一种方式,但似乎更一致的是从不将模型直接暴露给视图。想法?
【问题讨论】:
标签: .net wpf silverlight entity-framework mvvm