Mar*_*ton 3 wpf datatemplate mvvm viewmodel viewmodellocator
在使用MVVM的过去,我已经创建了每个View作为DataTemplate其对应的viewmodel来处理连接它们.我刚开始使用MVVM Light,并注意到他们有ViewModelLocator.我看过的其他几个工具包包含了一些变化,但这会带来什么好处DataTemplate呢?
连接Views和ViewModel的最佳做法是什么?
有两种不同的方法,而不是一种"正确的方法".
一个ViewModelLocator或类似的帮助的方法是开发MVVM的"View-First"方法.这样,它意味着您从设计器中的View开始,然后构建ViewModel以匹配.逻辑上,Views通常会创建其他视图,ViewModel通常通过某种形式的定位器加载并为给定的View填充.消息传递或服务用于将适当的模型挂钩到新生成的ViewModel中.
这样做的优点是可视化设计更容易,尤其是在使用Blend时.
另一种方法是使用"ViewModel-First".这样,您生成ViewModel,然后使用DataTemplates来填充View.ViewModels将组成/创建其他VM,直接设置相应的Model.从程序员的角度来看,这通常是(IMO)更加清晰,因为事情只是直接起作用.然而,从设计者的角度来看,设计和使用通常更加困难,因为设计时数据更难以生成等.
这两种方法都是完全有效的,并且具有很强的优点和缺点.由于各种原因,不同的MVVM纯粹主义者倾向于选择一种方法而不是另一种方法 - 通常是从代码清洁度角度还是从设计者的角度来看它们是否正在接近这种方法.
| 归档时间: |
|
| 查看次数: |
3567 次 |
| 最近记录: |