我为应用程序提供了大量内容页面,并最终编写了每个内容页面的大量视图模型。例如。如果我有一个包含项目组的列表,我将拥有ShowAllViewModel
并绑定到内容页面和列表中单个项目的视图模型。
在ShowAllViewModel
中,我将拥有与内容页面相关的功能,而项目的视图模型将具有要在列表中显示的属性或功能。
这是正常的吗?
答案 0 :(得分:1)
是的,这是编写基于MVVM的应用程序的好方法。 ViewModel
基本上是从视图中抽象逻辑,它本身也可以管理其他子ViewModels
,它们是绑定到同一页面上其他控件的数据。
给列表中的每个项目自己的ViewModel
是有益的,因为它可以作为一个自包含的单元,它有自己的数据绑定属性,它自己的命令等,而父ViewModel
。 1}}管理列表本身。
在MVVM应用程序中,您经常最终为许多数据模型创建小ViewModel
包装器,这是一件好事,因为您创建了一个抽象层,允许您公开实际需要的属性和值或将模型属性转换为正确的格式以进行演示。