我现在正在学习MVVM而且我理解的东西很少(这里有很多东西......):
DynamicObject
(查看字典示例@链接页面),所以我不知道必须在两层(M& VM)中反复重新声明所有属性和验证 - 因为无论如何,View无论如何都要通过反射访问ViewModel的字段。由于
答案 0 :(得分:4)
多么心灵感应! 我非常喜欢阅读this Robert McCarter的精彩文章,他谈到了我感到痛苦的事情!特别是关于代理属性(现在我甚至知道它的名字......)。
我会热烈推荐这篇文章给每一个MVVM混淆(像我一样 - 我相信有很多!)
答案 1 :(得分:2)
1/2)与大多数编程问题一样......这完全取决于。
这取决于你如何将想法联系在一起。如果符合您的需要,您可以在视图模型中重新公开所需的模型属性。隐藏您不希望用户与DB密钥交互的模型比例。您可以将模型验证逻辑放在模型或视图模型中。这一切都取决于什么对你和你的情况有用,这就是为什么很难直接回答这个问题。
我正在使用ViewModelBase来获取所有ViewModel共享的功能。我一直在使用基础对象来处理INotifyPropertyChanged代码。
3)看看Karl Shifflett’s web site。 Karl有一堆你可以看的代码。 Stuff和BBQ Shack正在进行MVVM项目。他还有一个完整的MVVM培训模块here。
我会发布一些链接,但每个帖子我只能使用2个链接。