Xamarin 表单:不同的 viewModel 有不同的屏幕是否正常

Xamarin form: Is it normal to have different screen for different viewModel

我有许多应用程序的内容页面,并最终为每个内容页面编写了很多视图模型。例如。如果我有一个包含项目组的列表,我将有一个 ShowAllViewModel 并绑定到内容页面和列表中单个项目的视图模型。

ShowAllViewModel 中,我将具有与内容页面相关的功能,而项目的视图模型将具有要在列表中显示的属性或功能。

这是正常的吗?

是的,这是编写基于 MVVM 的应用程序的好方法。 ViewModel 基本上是从视图中抽象逻辑,它本身还可以管理其他子 ViewModels,这些子 ViewModels 是绑定到同一页面上其他控件的数据。

为列表中的每个项目赋予它自己的 ViewModel 是有益的,因为它可以作为一个独立的单元工作,它有自己的数据绑定属性、自己的命令等,而父级ViewModel 管理列表本身。

在 MVVM 应用程序中,您通常最终会为许多数据模型创建小型 ViewModel 包装器,这是一件好事,因为您创建了一个抽象层,允许您公开实际的属性和值需要或将模型属性转换为正确的格式以进行展示。