我正在使用 MVVM Light 并使用打包的 messenger 系统在视图模型之间进行通信,但是我遇到了一些难题!基本上,当用户单击客户记录时,会打开相应的视图并实例化CustomerViewModel 。此时,CustomerViewModel需要从前一个视图模型(ViewAllCustomersViewModel)中选择的客户 ID,以便它可以获取视图绑定到的选定客户信息(仍在关注?)。所以最初我的想法是将该ID从ViewAllCustomersViewModel(选择要查看的客户)发送到CustomerViewModel的消息中......但是,CustomerViewModel在加载视图(此时消息已经被广播)之前,不会实例化以便能够接收消息!
那么,解决这个问题的最佳方法是什么?到目前为止,我已经考虑了CustomerViewModel在实例化后向ViewAllCustomersViewModel发送请求(基本上是说“我准备好接收消息”),然后ViewAllCustomersViewModel将 ID 发送回CustomerViewModel ...但这是一个解决这个问题的必要方法?我觉得有点丑!
否则,我在想是否有另一种沟通方式可以解决我遇到的问题?但是,这难道不是消息传递系统的全部意义……能够在视图模型之间进行通信吗?或者我可以强制在启动时实例化视图模型吗?如果是这样,那将如何影响ViewModelLocator?
我希望我已经清楚地概述了这个问题,出于解释的目的,我使用了虚构的视图模型名称......请随时编辑或建议您希望我添加的任何其他信息!