0
A
回答
4
1
要使用MVVM框架只是简单的按照以下步骤进行:
- 你有一个模型和视图模型具有相同的名称。
视图模型不应该是模型周围的包装。视图模型的工作是代理对外部服务的请求,例如加载和保存数据。数据本身以及验证和大部分业务逻辑都应在模型中。
我不能强调这一点。无论何时你创建一个由代表团包装模型的视图模型,你都会在你的API中引入一个巨大的漏洞。特别是,任何对模型有直接引用的东西都可以改变属性,使得视图模型以及UI从未被通知。同样,对模型中计算字段的任何更改都不会传播回视图模型。
- 您有一个视图和一个同名的视图模型。
理想情况下,视图模型与它们使用的屏幕是不可知的。在WPF应用程序中,多个窗口可能共享同一个视图模型实例的情况尤其如此。
对于较小的应用程序,您可能只需要一个单一的视图模型为整个应用程序。对于较大的应用程序,您可能需要一个用于主要功能,另一个用于每个辅助方面(如配置管理)。
- 您没有背后的代码。
从绝对的角度来看,背后的代码既不是一件好事,也不是一件坏事。它只是一个把逻辑放在单个视图或控件上的地方。所以当我看到没有代码隐藏的视图时,我立即检查以下错误:
- 视图模型是否按名称触摸特定控件?
- 视图模型是否可以通过命令参数访问控件?
- 是否使用EventToCommand或其他泄漏行为来代替简单的事件处理程序?
来自MVVM Light的EventToCommand尤其糟糕,因为它会阻止控件在从屏幕中移除后进行垃圾回收。
- 查看的模型正在听属性更改通知
如果模型具有更长的寿命,那么该视图模型侦听它的事件,那么你可能有内存泄漏。与具有卸载事件的视图不同,视图模型对于生命周期管理没有好的故事。所以如果他们将一个事件附加到一个可能超出它们的模型上,那么视图模型将被泄漏。
相关问题
- 1. 什么是执行框架?
- 2. 这是什么web框架?
- 3. 什么是.NET框架
- 4. 什么是python web框架
- 5. 什么是实体框架
- 6. 什么是HTML5框架?
- 7. 什么是软件框架?
- 8. 什么是“优秀”框架?
- 9. 什么是PastryKit框架?
- 10. 什么是新框架?
- 11. 什么是onDrawFrame框架?
- 12. 什么是.NET架构和什么是.NET框架?
- 13. DataTemplates和MVVM框架
- 14. Catel(MVVM框架)ObservableCollection
- 15. MonoDroid的MVVM框架?
- 16. 什么是动态框架而不是非动态框架?
- 17. 什么是最好的ASP.NET MVC框架/架构,为什么?
- 18. 我应该使用什么MVVM框架(Silverlight)?
- 19. 对于MVVM哪个MVVM框架好?
- 20. 什么是MvvM模型
- 21. 什么POOP框架
- 22. 实体框架WPF/MVVM
- 23. MVVM和导航框架
- 24. MVVM Silverlight框架选择
- 25. 导航框架和Combobox MVVM
- 26. 寻找WPF MVVM框架
- 27. 什么是开发框架?什么是IDE?
- 28. 什么是更好的,一个JavaScript框架或多个框架
- 29. 什么是持久框架类型?
- 30. 这是什么样的web框架?
如果你知道MVVM是什么(就像你在暗示你的问题),你一定知道? “什么是[MVVM框架]有用?”为了实现MVVM! – 2010-10-07 12:52:49