想象一下,有一个View将显示数据收集的多个步骤.根据上一步骤中的决定,以下步骤的顺序或具体实例将有所不同.
遵循MVVM纯粹最佳实践,我想在外部ViewModel中有一个ViewModel列表是这样做的,并让外部View绑定自定义选项卡控件(或类似).
这让我想到了两个方面,我不清楚:
第一点:"哪个先来?"
外部View/ViewModel组合可能是"View First".也就是说,视图要么接收ViewModel,要么实例化一个ViewModel.
但是当涉及到这个外部ViewModel中的ViewModel列表时:它们各自的Views来自哪里?哪个实体负责为每个实体选择最佳视图?
我不太喜欢像这样在"View First"和"ViewModel First"之间交替使用.
第二点:ViewModels之间的通信
当其中一个内部ViewModel步骤完成时,例如单击"保存"或"下一步"按钮,应该向该内部ViewModel触发一个命令,然后显示下一个.
这需要外部ViewModel:
能够拿起发送到内部ViewModel的Save命令
能够访问内部ViewModel中的数据.
人们通常会怎么做?将内部和外部ViewModel与事件绑定在一起被认为是一种不好的做法吗?