让我们举这个例子。我有一个绑定到 AViewModel 的 AView。AView 应该在 AViewModel 上执行一个 ACommand,并传递一个参数。问题是 ViewA 没有足够的信息传递给命令,因此需要显示另一个 BView,以便从用户那里收集信息。VIewB 关闭后,ViewA 调用 AViewModel 上的 ACommand,并将参数传递给它。
如何处理这种情况?我是否应该允许 AView 直接与 BView 通信,或者如果我这样做我违反了某些规则?
我在想的另一种方法是在没有参数的情况下在 AViewModel 上调用 ACommand,然后从 VIewModelA 发送一条消息,说明完成任务需要信息。此信息由 MainPageViewModel 捕获,然后发送打开 BView 的请求,该请求绑定到 BViewModel。当 BView 关闭时,BVIewModel 会发送一条带有附加信息的消息,而 ViewModelA 已经订阅了该类型的消息,因此它会收到它,并完成任务。仅在两个文本框中输入值相当复杂,对吧?:)