题
我知道一些MVVM框架引入了 这 线
请描述或给我链接。没有有关MVVM有关MVVM框架的信息。谢谢:)我想知道:什么是MVVM框架?
其他提示
要使用MVVM框架,只需按照以下步骤即可:
- 您有一个具有相同名称的模型和视图模型。
View Models不应该是围绕型号的包装器。视图模型的工作是向外部服务(例如加载和保存数据)进行代理请求。数据本身以及验证以及大多数业务逻辑应在模型中。
我不能强调这一点。每当您创建一个通过委托包装模型包装模型的视图模型时,您就会在API中引入一个巨大的漏洞。特别是,直接引用该模型的任何内容都可以以某种方式更改属性,从而使视图模型和UI永远不会通知。同样,模型中计算出的字段的任何更改都不会传播回视图模型。
- 您有一个具有相同名称的视图和视图模型。
理想情况下,视图模型对它们使用的屏幕不可知。在WPF应用程序中尤其如此,其中多个窗口可能共享与视图模型的相同实例。
对于较小的应用程序,您可能只需要单个视图模型来用于整个应用程序。对于较大的应用程序,您可能需要一个用于主要功能,而对于每个次要方面,例如配置管理。
- 您没有后面的代码。
从绝对的角度来看,背后的代码既不是一件好事也不是坏事。它仅仅是放置特定于单个视图或控制的逻辑的地方。因此,当我看到没有代码的视图时,我立即立即检查以下错误:
- 视图模型是否按名称触摸特定的控件?
- 视图模型是否通过命令参数访问了对控件?
- 是否使用EventTocommand或其他泄漏行为代替简单事件处理程序?
MVVM Light的EventTocommand尤其糟糕,因为它将防止在将其从屏幕上取出后收集垃圾。
- 查看模型正在收听属性更改通知
如果模型具有更长的寿命,则可以听取事件的视图模型,那么您可能会有内存泄漏。与有卸载事件的观点不同,View Models对生命周期管理没有一个好的故事。因此,如果他们将事件附加到可能超过它们的模型上,则将泄漏视图模型。
不隶属于 StackOverflow