【发布时间】:2020-03-04 22:31:23
【问题描述】:
问题可以总结为:在 UWP 上使用 MVVM Light 开发清晰应用的最佳方式是什么?也许我错过了,但我没有找到样本或类似的东西……
我看到了很多讨论和变化: 模型——我是只放数据还是应该创建 e DAL 模型?如果我使用 EF,我需要 2 层(DAL 和模型)吗?
它应该是可观察的吗?加载/保存或填充方法应该在此处还是在 DAL 中?
然后我们进入上层:如果您在一个类(例如公司 - 员工)中有一个列表,那么 List 对象是在 Model 中还是在 ViewModel 中?
但是,如果我有模型公司和通过 EF 上的 LINQ 收集的公司列表(列表),我该如何将其转换为 ObservableCollection<CompanyViewModel>?我应该做一个循环并添加新对象吗?不是很高效很好...没有更好的方法吗?
模型会引发 ContentChanged 吗? (在我看来答案是否定的,它应该由视图模型提出)
对于 ViewModel,您是根据视图(主窗体 ViewModel、TreeView ViewModel)还是数据(CompanyViewModel)映射视图模型?或两者兼而有之(在这种情况下为什么?)?
所有 ViewModel 都应该是可观察的,所以所有操作都应该引发此处或下方的内容更改?
我已经看到了所有可能的答案,所以这就是我要问的原因:;哪个是“黄金”方式? “最佳实践”? 我知道几乎所有这些都“可以工作”,但我的目标是了解“最好的”(= 从设计的角度来看更高效、更干净等......)。
【问题讨论】:
-
DAL 是 MVVM 中模型的一部分。您可以注入一个引用 DAL 的视图模型或使用 DAL 从数据库中获取数据的服务。然后由视图模型或客户端服务负责“转换”数据。什么是普通的旧循环“效率不高”?
标签: c# entity-framework mvvm uwp mvvm-light