我是MvvmCross和Xamarin的新手。我一直在研究这个问题已经有一段时间了,我试图找到将一些数据从ViewModel B发送到ViewModel A的最佳方法。这意味着ViewModel A负责显示ViewModel B.它是如此直接的如何在启动时将数据发送到ViewModel,但是我没有明确定义的教程,展示了如何在完成时将数据发送回起始ViewModel。
我遇到像MvvmCross.Messenger这样的事件聚合器似乎是一个理想的候选人。但是对于Android项目,由于Android Activity生命周期方法,我不确定这是否是一个不错的选择。
对此的任何帮助都将非常感激。谢谢。
答案 0 :(得分:5)
使用Messenger是正确的方法,它已在another stack overflow question中介绍。甚至还有一个可以玩的示例代码。
要点是两个ViewModel都接收一个(可能是单一的)Messenger,当ViewModelB想让ViewModelA需要重新加载它的数据时,ViewModelB通过信使发送一条消息。 内部Messenger使用WeakReference来确保垃圾收集仍然可以继续(检查this post for more information)
答案 1 :(得分:2)