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