我有一个带有相应视图模型的父视图。该父视图包含具有自己的视图模型的子控件。
过去,在这种父子类型关系中,我通常让父视图模型包含对子视图模型的引用,然后子视图模型通过事件与父视图模型进行通信。
在与其他不相关的视图模型通信时,我使用了消息传递。
在我目前正在进行的项目中,我们正处于早期阶段并使用 mvvm-light,并且有人使用消息传递服务创建了类似的父子关系,这意味着我们更加松散耦合,这很棒。但是,我们没有单例视图模型,因此我们可能会有客户 A 的父视图和子视图和视图模型,然后再有客户 B 的其他实例。如果子视图订阅消息 - 该消息将被广播由家长 A,但孩子 A 和 B 都会收到,但我只希望孩子 A 回应。
这种情况的最佳实践是什么?我试图获得一些时间来比较消息传递方法与视图模型引用和事件方法,但由于一种方法主要通过绑定发生,我发现很难弄清楚在哪里放置秒表代码。有谁知道这两种方法之间是否存在很大的性能差异。
我目前的想法是我们应该使用包含对子视图模型的引用的父视图模型并利用事件和绑定进行通信。或者有没有更好的方法来做到这一点?